import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
import sklearn
from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler, MinMaxScaler, RobustScaler, scale
from sklearn.impute import SimpleImputer #, KNNImputer
from scipy.spatial.distance import cdist
from sklearn.cluster import KMeans
from sklearn.metrics import silhouette_samples, silhouette_score
from sklearn.model_selection import GridSearchCV, StratifiedKFold
from sklearn.pipeline import Pipeline, make_pipeline
from sklearn.svm import LinearSVC, SVC
import plotly.graph_objs as go
from sklearn.metrics import classification_report, confusion_matrix #, plot_confusion_matrix,
from imblearn.over_sampling import SMOTE, RandomOverSampler
from imblearn.under_sampling import RandomUnderSampler
from imblearn.pipeline import Pipeline
from sklearn.utils import resample
from xgboost import XGBClassifier
from sklearn.linear_model import LogisticRegressionCV
from sklearn.preprocessing import QuantileTransformer
from sklearn.metrics import f1_score, accuracy_score, plot_confusion_matrix
import warnings
warnings.filterwarnings('ignore')
from sklearn.model_selection import train_test_split, RepeatedStratifiedKFold, cross_val_score
pd.set_option("display.max_rows", 200, "display.max_columns", 50)
RS=42
signal = pd.read_csv('signal-data.csv')
print('Shape of the dataset:', signal.shape)
display(signal.head())
Shape of the dataset: (1567, 592)
| Time | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | ... | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | Pass/Fail | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 2008-07-19 11:55:00 | 3030.93 | 2564.00 | 2187.7333 | 1411.1265 | 1.3602 | 100.0 | 97.6133 | 0.1242 | 1.5005 | 0.0162 | -0.0034 | 0.9455 | 202.4396 | 0.0 | 7.9558 | 414.8710 | 10.0433 | 0.9680 | 192.3963 | 12.5190 | 1.4026 | -5419.00 | 2916.50 | -4043.75 | ... | NaN | NaN | NaN | NaN | 533.8500 | 2.1113 | 8.95 | 0.3157 | 3.0624 | 0.1026 | 1.6765 | 14.9509 | NaN | NaN | NaN | NaN | 0.5005 | 0.0118 | 0.0035 | 2.3630 | NaN | NaN | NaN | NaN | -1 |
| 1 | 2008-07-19 12:32:00 | 3095.78 | 2465.14 | 2230.4222 | 1463.6606 | 0.8294 | 100.0 | 102.3433 | 0.1247 | 1.4966 | -0.0005 | -0.0148 | 0.9627 | 200.5470 | 0.0 | 10.1548 | 414.7347 | 9.2599 | 0.9701 | 191.2872 | 12.4608 | 1.3825 | -5441.50 | 2604.25 | -3498.75 | ... | NaN | NaN | NaN | NaN | 535.0164 | 2.4335 | 5.92 | 0.2653 | 2.0111 | 0.0772 | 1.1065 | 10.9003 | 0.0096 | 0.0201 | 0.0060 | 208.2045 | 0.5019 | 0.0223 | 0.0055 | 4.4447 | 0.0096 | 0.0201 | 0.0060 | 208.2045 | -1 |
| 2 | 2008-07-19 13:17:00 | 2932.61 | 2559.94 | 2186.4111 | 1698.0172 | 1.5102 | 100.0 | 95.4878 | 0.1241 | 1.4436 | 0.0041 | 0.0013 | 0.9615 | 202.0179 | 0.0 | 9.5157 | 416.7075 | 9.3144 | 0.9674 | 192.7035 | 12.5404 | 1.4123 | -5447.75 | 2701.75 | -4047.00 | ... | 0.4122 | 0.2562 | 0.4119 | 68.8489 | 535.0245 | 2.0293 | 11.21 | 0.1882 | 4.0923 | 0.0640 | 2.0952 | 9.2721 | 0.0584 | 0.0484 | 0.0148 | 82.8602 | 0.4958 | 0.0157 | 0.0039 | 3.1745 | 0.0584 | 0.0484 | 0.0148 | 82.8602 | 1 |
| 3 | 2008-07-19 14:43:00 | 2988.72 | 2479.90 | 2199.0333 | 909.7926 | 1.3204 | 100.0 | 104.2367 | 0.1217 | 1.4882 | -0.0124 | -0.0033 | 0.9629 | 201.8482 | 0.0 | 9.6052 | 422.2894 | 9.6924 | 0.9687 | 192.1557 | 12.4782 | 1.4011 | -5468.25 | 2648.25 | -4515.00 | ... | 3.5611 | 0.0670 | 2.7290 | 25.0363 | 530.5682 | 2.0253 | 9.33 | 0.1738 | 2.8971 | 0.0525 | 1.7585 | 8.5831 | 0.0202 | 0.0149 | 0.0044 | 73.8432 | 0.4990 | 0.0103 | 0.0025 | 2.0544 | 0.0202 | 0.0149 | 0.0044 | 73.8432 | -1 |
| 4 | 2008-07-19 15:22:00 | 3032.24 | 2502.87 | 2233.3667 | 1326.5200 | 1.5334 | 100.0 | 100.3967 | 0.1235 | 1.5031 | -0.0031 | -0.0072 | 0.9569 | 201.9424 | 0.0 | 10.5661 | 420.5925 | 10.3387 | 0.9735 | 191.6037 | 12.4735 | 1.3888 | -5476.25 | 2635.25 | -3987.50 | ... | NaN | NaN | NaN | NaN | 532.0155 | 2.0275 | 8.83 | 0.2224 | 3.1776 | 0.0706 | 1.6597 | 10.9698 | NaN | NaN | NaN | NaN | 0.4800 | 0.4766 | 0.1045 | 99.3032 | 0.0202 | 0.0149 | 0.0044 | 73.8432 | -1 |
5 rows × 592 columns
signal.dtypes
Time object
0 float64
1 float64
2 float64
3 float64
...
586 float64
587 float64
588 float64
589 float64
Pass/Fail int64
Length: 592, dtype: object
col_obj = [i for i in signal.columns if signal[i].dtype=='O']
col_obj
['Time']
signal['Time'].nunique()
1534
Time feature is useless, so we can drop it from the dataset
Also Pass/Fail column can be modified slightly for better clarity
signal.drop('Time',1,inplace=True)
signal.replace({-1: 0},inplace=True)
signal.rename(columns={"Pass/Fail": "Fail",},inplace=True)
# Thus, Fail ==0, means product failed, else passed
signal.head()
| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | ... | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 | Fail | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 3030.93 | 2564.00 | 2187.7333 | 1411.1265 | 1.3602 | 100.0 | 97.6133 | 0.1242 | 1.5005 | 0.0162 | -0.0034 | 0.9455 | 202.4396 | 0.0 | 7.9558 | 414.8710 | 10.0433 | 0.9680 | 192.3963 | 12.5190 | 1.4026 | -5419.00 | 2916.50 | -4043.75 | 751.00 | ... | NaN | NaN | NaN | NaN | 533.8500 | 2.1113 | 8.95 | 0.3157 | 3.0624 | 0.1026 | 1.6765 | 14.9509 | NaN | NaN | NaN | NaN | 0.5005 | 0.0118 | 0.0035 | 2.3630 | NaN | NaN | NaN | NaN | 0 |
| 1 | 3095.78 | 2465.14 | 2230.4222 | 1463.6606 | 0.8294 | 100.0 | 102.3433 | 0.1247 | 1.4966 | -0.0005 | -0.0148 | 0.9627 | 200.5470 | 0.0 | 10.1548 | 414.7347 | 9.2599 | 0.9701 | 191.2872 | 12.4608 | 1.3825 | -5441.50 | 2604.25 | -3498.75 | -1640.25 | ... | NaN | NaN | NaN | NaN | 535.0164 | 2.4335 | 5.92 | 0.2653 | 2.0111 | 0.0772 | 1.1065 | 10.9003 | 0.0096 | 0.0201 | 0.0060 | 208.2045 | 0.5019 | 0.0223 | 0.0055 | 4.4447 | 0.0096 | 0.0201 | 0.0060 | 208.2045 | 0 |
| 2 | 2932.61 | 2559.94 | 2186.4111 | 1698.0172 | 1.5102 | 100.0 | 95.4878 | 0.1241 | 1.4436 | 0.0041 | 0.0013 | 0.9615 | 202.0179 | 0.0 | 9.5157 | 416.7075 | 9.3144 | 0.9674 | 192.7035 | 12.5404 | 1.4123 | -5447.75 | 2701.75 | -4047.00 | -1916.50 | ... | 0.4122 | 0.2562 | 0.4119 | 68.8489 | 535.0245 | 2.0293 | 11.21 | 0.1882 | 4.0923 | 0.0640 | 2.0952 | 9.2721 | 0.0584 | 0.0484 | 0.0148 | 82.8602 | 0.4958 | 0.0157 | 0.0039 | 3.1745 | 0.0584 | 0.0484 | 0.0148 | 82.8602 | 1 |
| 3 | 2988.72 | 2479.90 | 2199.0333 | 909.7926 | 1.3204 | 100.0 | 104.2367 | 0.1217 | 1.4882 | -0.0124 | -0.0033 | 0.9629 | 201.8482 | 0.0 | 9.6052 | 422.2894 | 9.6924 | 0.9687 | 192.1557 | 12.4782 | 1.4011 | -5468.25 | 2648.25 | -4515.00 | -1657.25 | ... | 3.5611 | 0.0670 | 2.7290 | 25.0363 | 530.5682 | 2.0253 | 9.33 | 0.1738 | 2.8971 | 0.0525 | 1.7585 | 8.5831 | 0.0202 | 0.0149 | 0.0044 | 73.8432 | 0.4990 | 0.0103 | 0.0025 | 2.0544 | 0.0202 | 0.0149 | 0.0044 | 73.8432 | 0 |
| 4 | 3032.24 | 2502.87 | 2233.3667 | 1326.5200 | 1.5334 | 100.0 | 100.3967 | 0.1235 | 1.5031 | -0.0031 | -0.0072 | 0.9569 | 201.9424 | 0.0 | 10.5661 | 420.5925 | 10.3387 | 0.9735 | 191.6037 | 12.4735 | 1.3888 | -5476.25 | 2635.25 | -3987.50 | 117.00 | ... | NaN | NaN | NaN | NaN | 532.0155 | 2.0275 | 8.83 | 0.2224 | 3.1776 | 0.0706 | 1.6597 | 10.9698 | NaN | NaN | NaN | NaN | 0.4800 | 0.4766 | 0.1045 | 99.3032 | 0.0202 | 0.0149 | 0.0044 | 73.8432 | 0 |
5 rows × 591 columns
df = signal.isna().sum()*100/signal.shape[0]
plt.subplots(figsize=(100, 50))
fig = plt.plot(df)
plt.setp(fig, linewidth = 10)
plt.show()
There are features with large number of missing values (upto 91%), which needs to be handled
df = (signal == 0).sum()*100/signal.shape[0]
plt.subplots(figsize=(100, 50))
fig = plt.plot(df)
plt.setp(fig, linewidth = 10)
plt.show()
Large number of zeros are present. Many features have only 1 value, i.e. 0 throughout
signal.var()
0 5420.167484
1 6465.399020
2 871.026144
3 195091.505178
4 3175.946899
...
586 0.000153
587 0.000078
588 0.000008
589 8815.692532
Fail 0.062004
Length: 591, dtype: float64
df = pd.cut(signal.var().round(2),[-0.1,0,0.1,0.2,1,10,50,100,500,1000,float('inf')]).value_counts().sort_index()
df.index = df.index.map(str)
plt.subplots(figsize=(20, 10))
plt.bar(x=df.index, height=df)
<BarContainer object of 10 artists>
More than 250 features have extremely low variance (<0.1), thus having minimal contribution in the output
# Collect features with missing values more than 30%
df = signal.isna().sum()*100/signal.shape[0]
missing_features = df[df>30].index.tolist()
# Collect features with variance less than or equal to 0.1
df = signal.drop('Fail',1).var().round(2)
low_var_features = df[df<=0.1].index.tolist()
# combine the list and remove them frm the main dataset
signal2 = signal.drop(np.unique(low_var_features + missing_features).tolist(),1)
print(f'There are {signal2.shape[0]} rows and {signal2.shape[1]} columns\n')
print(f'Features left: {round(signal2.shape[1]*100/signal.shape[1],2)}%\n')
signal2.head()
There are 1567 rows and 255 columns Features left: 43.15%
| 0 | 1 | 2 | 3 | 4 | 6 | 12 | 14 | 15 | 16 | 18 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 31 | 32 | 33 | 34 | 35 | 36 | 38 | ... | 546 | 547 | 548 | 549 | 550 | 551 | 553 | 554 | 555 | 556 | 557 | 561 | 562 | 564 | 566 | 568 | 569 | 570 | 572 | 574 | 576 | 577 | 585 | 589 | Fail | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 3030.93 | 2564.00 | 2187.7333 | 1411.1265 | 1.3602 | 97.6133 | 202.4396 | 7.9558 | 414.8710 | 10.0433 | 192.3963 | -5419.00 | 2916.50 | -4043.75 | 751.00 | 3.0490 | 64.2333 | 2.0222 | 3.5191 | 83.3971 | 9.5126 | 50.6170 | 64.2588 | 49.3830 | 86.9555 | ... | 1.0616 | 395.570 | 75.752 | 0.4234 | 12.93 | 0.78 | 5.7349 | 0.3363 | 39.8842 | 3.2687 | 1.0297 | 42.3877 | NaN | NaN | NaN | NaN | NaN | 533.8500 | 8.95 | 3.0624 | 1.6765 | 14.9509 | 2.3630 | NaN | 0 |
| 1 | 3095.78 | 2465.14 | 2230.4222 | 1463.6606 | 0.8294 | 102.3433 | 200.5470 | 10.1548 | 414.7347 | 9.2599 | 191.2872 | -5441.50 | 2604.25 | -3498.75 | -1640.25 | 7.3900 | 68.4222 | 2.2667 | 3.4171 | 84.9052 | 9.7997 | 50.6596 | 64.2828 | 49.3404 | 87.5241 | ... | 1.3526 | 408.798 | 74.640 | 0.7193 | 16.00 | 1.33 | 7.1196 | 0.4989 | 53.1836 | 3.9139 | 1.7819 | 18.1087 | NaN | NaN | NaN | NaN | NaN | 535.0164 | 5.92 | 2.0111 | 1.1065 | 10.9003 | 4.4447 | 208.2045 | 0 |
| 2 | 2932.61 | 2559.94 | 2186.4111 | 1698.0172 | 1.5102 | 95.4878 | 202.0179 | 9.5157 | 416.7075 | 9.3144 | 192.7035 | -5447.75 | 2701.75 | -4047.00 | -1916.50 | 7.5788 | 67.1333 | 2.3333 | 3.5986 | 84.7569 | 8.6590 | 50.1530 | 64.1114 | 49.8470 | 84.7327 | ... | 0.7942 | 411.136 | 74.654 | 0.1832 | 16.16 | 0.85 | 7.1619 | 0.3752 | 23.0713 | 3.9306 | 1.1386 | 24.7524 | 267.064 | 1.10 | 0.4122 | 0.4119 | 68.8489 | 535.0245 | 11.21 | 4.0923 | 2.0952 | 9.2721 | 3.1745 | 82.8602 | 1 |
| 3 | 2988.72 | 2479.90 | 2199.0333 | 909.7926 | 1.3204 | 104.2367 | 201.8482 | 9.6052 | 422.2894 | 9.6924 | 192.1557 | -5468.25 | 2648.25 | -4515.00 | -1657.25 | 7.3145 | 62.9333 | 2.6444 | 3.3813 | 84.9105 | 8.6789 | 50.5100 | 64.1125 | 49.4900 | 86.6867 | ... | 1.1650 | 372.822 | 72.442 | 1.8804 | 131.68 | 39.33 | 56.9303 | 17.4781 | 161.4081 | 35.3198 | 54.2917 | 62.7572 | 268.228 | 7.32 | 3.5611 | 2.7290 | 25.0363 | 530.5682 | 9.33 | 2.8971 | 1.7585 | 8.5831 | 2.0544 | 73.8432 | 0 |
| 4 | 3032.24 | 2502.87 | 2233.3667 | 1326.5200 | 1.5334 | 100.3967 | 201.9424 | 10.5661 | 420.5925 | 10.3387 | 191.6037 | -5476.25 | 2635.25 | -3987.50 | 117.00 | 7.2748 | 62.8333 | 3.1556 | 3.2728 | 86.3269 | 8.7677 | 50.2480 | 64.1511 | 49.7520 | 86.1468 | ... | 1.4636 | 399.914 | 79.156 | 1.0388 | 19.63 | 1.98 | 9.7608 | 0.8311 | 70.9706 | 4.9086 | 2.5014 | 22.0500 | NaN | NaN | NaN | NaN | NaN | 532.0155 | 8.83 | 3.1776 | 1.6597 | 10.9698 | 99.3032 | 73.8432 | 0 |
5 rows × 255 columns
df = signal2.drop('Fail',1)
vif = pd.Series(np.linalg.inv(df.corr().values).diagonal(),index=df.columns,
name='VIF').abs().sort_values(ascending=False).round(2)
df = pd.cut(vif.round(1),[0,1,10,50,100,500,1000,float('inf')]).value_counts().sort_index()
df.index = df.index.map(str)
plt.subplots(figsize=(20, 10))
plt.bar(x=df.index, height=df)
<BarContainer object of 7 artists>
There are several highly multicollinear (high vif value) features. Generally vif>10 is considered as high. Let's remove these features as well
def capture_vif(df,limit):
high_vif = []
while 1:
temp_vif = pd.Series(np.linalg.inv(df.corr().values).diagonal(),index=df.columns,
name='VIF').abs().sort_values(ascending=False).round(2)
maxi = temp_vif.max()
if maxi>limit:
high_vif = temp_vif[temp_vif == maxi].index.tolist()[0]
df = df.drop(high_vif,1)
else:
return df
return
signal3 = capture_vif(signal2,10)
print(f'There are {signal3.shape[0]} rows and {signal3.shape[1]} columns\n')
print(f'Overall Features left: {round(signal3.shape[1]*100/signal.shape[1],2)}%\n')
signal3.head(7)
There are 1567 rows and 145 columns Overall Features left: 24.53%
| 0 | 1 | 2 | 3 | 6 | 14 | 15 | 18 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 31 | 32 | 33 | 35 | 36 | 38 | 39 | 40 | 41 | 43 | ... | 521 | 523 | 525 | 526 | 527 | 539 | 540 | 541 | 545 | 546 | 547 | 548 | 551 | 553 | 555 | 561 | 562 | 568 | 569 | 570 | 574 | 577 | 585 | 589 | Fail | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 3030.93 | 2564.00 | 2187.7333 | 1411.1265 | 97.6133 | 7.9558 | 414.8710 | 192.3963 | -5419.00 | 2916.50 | -4043.75 | 751.00 | 3.0490 | 64.2333 | 2.0222 | 3.5191 | 83.3971 | 9.5126 | 64.2588 | 49.3830 | 86.9555 | 117.5132 | 61.29 | 4.515 | 352.7173 | ... | 0.0 | 0.1094 | 3.1406 | 0.5064 | 6.6926 | 2.0570 | 4.0825 | 11.5074 | 7.116 | 1.0616 | 395.570 | 75.752 | 0.78 | 5.7349 | 39.8842 | 42.3877 | NaN | NaN | NaN | 533.8500 | 3.0624 | 14.9509 | 2.3630 | NaN | 0 |
| 1 | 3095.78 | 2465.14 | 2230.4222 | 1463.6606 | 102.3433 | 10.1548 | 414.7347 | 191.2872 | -5441.50 | 2604.25 | -3498.75 | -1640.25 | 7.3900 | 68.4222 | 2.2667 | 3.4171 | 84.9052 | 9.7997 | 64.2828 | 49.3404 | 87.5241 | 118.1188 | 78.25 | 2.773 | 352.2445 | ... | 0.0 | 0.0673 | 3.1310 | 0.8832 | 8.8370 | 1.7910 | 2.9799 | 9.5796 | 7.116 | 1.3526 | 408.798 | 74.640 | 1.33 | 7.1196 | 53.1836 | 18.1087 | NaN | NaN | NaN | 535.0164 | 2.0111 | 10.9003 | 4.4447 | 208.2045 | 0 |
| 2 | 2932.61 | 2559.94 | 2186.4111 | 1698.0172 | 95.4878 | 9.5157 | 416.7075 | 192.7035 | -5447.75 | 2701.75 | -4047.00 | -1916.50 | 7.5788 | 67.1333 | 2.3333 | 3.5986 | 84.7569 | 8.6590 | 64.1114 | 49.8470 | 84.7327 | 118.6128 | 14.37 | 5.434 | 364.3782 | ... | 0.0 | 0.0751 | 12.1831 | 0.6451 | 6.4568 | 2.1538 | 2.9667 | 9.3046 | 7.116 | 0.7942 | 411.136 | 74.654 | 0.85 | 7.1619 | 23.0713 | 24.7524 | 267.064 | 0.4119 | 68.8489 | 535.0245 | 4.0923 | 9.2721 | 3.1745 | 82.8602 | 1 |
| 3 | 2988.72 | 2479.90 | 2199.0333 | 909.7926 | 104.2367 | 9.6052 | 422.2894 | 192.1557 | -5468.25 | 2648.25 | -4515.00 | -1657.25 | 7.3145 | 62.9333 | 2.6444 | 3.3813 | 84.9105 | 8.6789 | 64.1125 | 49.4900 | 86.6867 | 117.0442 | 76.90 | 1.279 | 363.0273 | ... | 0.0 | 0.0977 | 6.7553 | 0.7404 | 6.4865 | 2.1565 | 3.2465 | 7.7754 | 7.116 | 1.1650 | 372.822 | 72.442 | 39.33 | 56.9303 | 161.4081 | 62.7572 | 268.228 | 2.7290 | 25.0363 | 530.5682 | 2.8971 | 8.5831 | 2.0544 | 73.8432 | 0 |
| 4 | 3032.24 | 2502.87 | 2233.3667 | 1326.5200 | 100.3967 | 10.5661 | 420.5925 | 191.6037 | -5476.25 | 2635.25 | -3987.50 | 117.00 | 7.2748 | 62.8333 | 3.1556 | 3.2728 | 86.3269 | 8.7677 | 64.1511 | 49.7520 | 86.1468 | 121.4364 | 76.39 | 2.209 | 353.3400 | ... | 0.0 | 0.0616 | 2.9954 | 2.2181 | 6.3745 | 2.0579 | 1.9999 | 9.4805 | 7.116 | 1.4636 | 399.914 | 79.156 | 1.98 | 9.7608 | 70.9706 | 22.0500 | NaN | NaN | NaN | 532.0155 | 3.1776 | 10.9698 | 99.3032 | 73.8432 | 0 |
| 5 | 2946.25 | 2432.84 | 2233.3667 | 1326.5200 | 100.3967 | 8.6617 | 414.2426 | 191.2280 | -6058.00 | 2953.75 | -3906.50 | 193.75 | 3.0505 | 62.3778 | 1.6333 | 3.5200 | 85.4233 | 9.6484 | 64.0720 | 49.4205 | 87.0273 | 117.4928 | 59.94 | 3.024 | 360.2873 | ... | 0.0 | 0.0706 | 4.4060 | 2.9077 | 7.0970 | 1.7910 | 2.9799 | 9.5796 | 7.116 | 1.2708 | 412.222 | 80.326 | 1.65 | 7.2448 | 86.9463 | 30.6277 | 254.006 | 1.8700 | 22.5598 | 534.2091 | 2.2598 | 13.7755 | 3.8276 | 44.0077 | 0 |
| 6 | 3030.27 | 2430.12 | 2230.4222 | 1463.6606 | 102.3433 | 9.0350 | 415.8852 | 192.0912 | -6154.00 | 2691.75 | -3914.75 | 580.25 | 3.0515 | 60.8000 | 2.4889 | 3.4927 | 87.1543 | 9.1502 | 64.2476 | 49.7153 | 86.3740 | 121.8664 | 74.46 | 3.978 | 352.1836 | ... | 0.0 | 0.0988 | 4.7340 | 0.5157 | 8.4653 | 1.4336 | 2.9239 | 7.5762 | 7.116 | 0.5051 | 404.356 | 72.040 | 0.87 | 5.4711 | 29.4773 | 51.4535 | NaN | NaN | NaN | 541.9036 | 2.2019 | 8.3645 | 2.8515 | 44.0077 | 0 |
7 rows × 145 columns
df=((signal3 == 0).sum() + signal3.isna().sum())*100/signal3.shape[0]
df=((signal3 == 0).sum() + signal3.isna().sum())*100/signal3.shape[0]
plt.subplots(figsize=(100, 50))
fig = plt.plot(df)
plt.setp(fig, linewidth = 10)
plt.show()
df = signal3.drop('Fail',1).nunique()
Drop = df[df<=20]
Drop
209 2 521 9 dtype: int64
These two are the same features, which have high zeros, as shown in the previous plotly graph
These two features offer no value in terms of predicting target column.
Let's also check if any other features is dominated by any value other than zero
df = signal3.apply(pd.value_counts).max()*100/signal3.shape[0]
plt.subplots(figsize=(100, 50))
fig = plt.plot(df)
plt.setp(fig, linewidth = 10)
plt.show()
Thus, other than these two, no other feature is heavily dominated by a single value
signal4=signal3.drop(Drop.index,1)
print(f'There are {signal4.shape[0]} rows and {signal4.shape[1]} columns\n')
print(f'Overall Features left: {round(signal4.shape[1]*100/signal.shape[1],2)}%\n')
signal4.head()
There are 1567 rows and 143 columns Overall Features left: 24.2%
| 0 | 1 | 2 | 3 | 6 | 14 | 15 | 18 | 21 | 22 | 23 | 24 | 27 | 28 | 29 | 31 | 32 | 33 | 35 | 36 | 38 | 39 | 40 | 41 | 43 | ... | 520 | 523 | 525 | 526 | 527 | 539 | 540 | 541 | 545 | 546 | 547 | 548 | 551 | 553 | 555 | 561 | 562 | 568 | 569 | 570 | 574 | 577 | 585 | 589 | Fail | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 0 | 3030.93 | 2564.00 | 2187.7333 | 1411.1265 | 97.6133 | 7.9558 | 414.8710 | 192.3963 | -5419.00 | 2916.50 | -4043.75 | 751.00 | 3.0490 | 64.2333 | 2.0222 | 3.5191 | 83.3971 | 9.5126 | 64.2588 | 49.3830 | 86.9555 | 117.5132 | 61.29 | 4.515 | 352.7173 | ... | 1.9864 | 0.1094 | 3.1406 | 0.5064 | 6.6926 | 2.0570 | 4.0825 | 11.5074 | 7.116 | 1.0616 | 395.570 | 75.752 | 0.78 | 5.7349 | 39.8842 | 42.3877 | NaN | NaN | NaN | 533.8500 | 3.0624 | 14.9509 | 2.3630 | NaN | 0 |
| 1 | 3095.78 | 2465.14 | 2230.4222 | 1463.6606 | 102.3433 | 10.1548 | 414.7347 | 191.2872 | -5441.50 | 2604.25 | -3498.75 | -1640.25 | 7.3900 | 68.4222 | 2.2667 | 3.4171 | 84.9052 | 9.7997 | 64.2828 | 49.3404 | 87.5241 | 118.1188 | 78.25 | 2.773 | 352.2445 | ... | 1.6292 | 0.0673 | 3.1310 | 0.8832 | 8.8370 | 1.7910 | 2.9799 | 9.5796 | 7.116 | 1.3526 | 408.798 | 74.640 | 1.33 | 7.1196 | 53.1836 | 18.1087 | NaN | NaN | NaN | 535.0164 | 2.0111 | 10.9003 | 4.4447 | 208.2045 | 0 |
| 2 | 2932.61 | 2559.94 | 2186.4111 | 1698.0172 | 95.4878 | 9.5157 | 416.7075 | 192.7035 | -5447.75 | 2701.75 | -4047.00 | -1916.50 | 7.5788 | 67.1333 | 2.3333 | 3.5986 | 84.7569 | 8.6590 | 64.1114 | 49.8470 | 84.7327 | 118.6128 | 14.37 | 5.434 | 364.3782 | ... | 2.9626 | 0.0751 | 12.1831 | 0.6451 | 6.4568 | 2.1538 | 2.9667 | 9.3046 | 7.116 | 0.7942 | 411.136 | 74.654 | 0.85 | 7.1619 | 23.0713 | 24.7524 | 267.064 | 0.4119 | 68.8489 | 535.0245 | 4.0923 | 9.2721 | 3.1745 | 82.8602 | 1 |
| 3 | 2988.72 | 2479.90 | 2199.0333 | 909.7926 | 104.2367 | 9.6052 | 422.2894 | 192.1557 | -5468.25 | 2648.25 | -4515.00 | -1657.25 | 7.3145 | 62.9333 | 2.6444 | 3.3813 | 84.9105 | 8.6789 | 64.1125 | 49.4900 | 86.6867 | 117.0442 | 76.90 | 1.279 | 363.0273 | ... | 2.4416 | 0.0977 | 6.7553 | 0.7404 | 6.4865 | 2.1565 | 3.2465 | 7.7754 | 7.116 | 1.1650 | 372.822 | 72.442 | 39.33 | 56.9303 | 161.4081 | 62.7572 | 268.228 | 2.7290 | 25.0363 | 530.5682 | 2.8971 | 8.5831 | 2.0544 | 73.8432 | 0 |
| 4 | 3032.24 | 2502.87 | 2233.3667 | 1326.5200 | 100.3967 | 10.5661 | 420.5925 | 191.6037 | -5476.25 | 2635.25 | -3987.50 | 117.00 | 7.2748 | 62.8333 | 3.1556 | 3.2728 | 86.3269 | 8.7677 | 64.1511 | 49.7520 | 86.1468 | 121.4364 | 76.39 | 2.209 | 353.3400 | ... | 2.5512 | 0.0616 | 2.9954 | 2.2181 | 6.3745 | 2.0579 | 1.9999 | 9.4805 | 7.116 | 1.4636 | 399.914 | 79.156 | 1.98 | 9.7608 | 70.9706 | 22.0500 | NaN | NaN | NaN | 532.0155 | 3.1776 | 10.9698 | 99.3032 | 73.8432 | 0 |
5 rows × 143 columns
df = signal4.drop('Fail',1).skew()
plt.subplots(figsize=(100, 50))
fig = plt.plot(df)
plt.setp(fig, linewidth = 10)
plt.show()
df = signal4.drop('Fail',1)
df = pd.cut(df.skew().round(1),[float('-inf'),-1,0,1,10,float('inf')]).value_counts().sort_index()
df.index = df.index.map(str)
plt.subplots(figsize=(20, 10))
plt.bar(x=df.index, height=df)
<BarContainer object of 5 artists>
Generally, skewness of more than +1 or less than -1, is considered as high. In this case, skewness is extremely high, i.e. the distribution of many features are highly non-normal and are expected to have extreme outliers, which could affect the prediction accuracies of many classifiers
The skewness maybe because of potential outliers.
def IQR_outliers(data,limit=1.5):
numColumns = data.select_dtypes(include=np.number).columns.tolist(); # extract list of numeric columns
Q1 = data.quantile(0.25)
Q3 = data.quantile(0.75)
IQR = Q3-Q1;
outliers=((data[numColumns] < (Q1 - limit*IQR)) | (data[numColumns] > (Q3 + limit*IQR))).sum()*100/data.shape[0]
return outliers
df = signal4.drop(['Fail'],1).copy()
outliers = IQR_outliers(df)
plt.subplots(figsize=(100, 50))
fig = plt.plot(outliers)
plt.setp(fig, linewidth = 10)
plt.show()
There are too many IQR outliers to remove. In case of removal, there is a possibility that the nature of data might change, gievn the small size of 'Fail' data. Thus it might be better to use a different strategy.
Let us use quantile transformation to handle Outliers
df = signal4.drop(['Fail'],1).copy()
quantile_transformer = QuantileTransformer(output_distribution='normal', random_state=RS)
df1 = pd.DataFrame(quantile_transformer.fit_transform(df),columns=df.columns)
outliers = IQR_outliers(df)
outliers1=IQR_outliers(df1)
All the outliers have been handled
signal5 = signal4.replace(np.NaN, 0)
signal_X = signal5.drop('Fail',1)
Y = signal['Fail']
Y.value_counts()
0 1463 1 104 Name: Fail, dtype: int64
labels = ['Pass', 'Fail']
size = signal['Fail'].value_counts()
colors = ['orange', 'blue']
explode = [0, 0.1]
plt.style.use('seaborn-deep')
plt.rcParams['figure.figsize'] = (8, 8)
plt.pie(size, labels =labels, colors = colors, explode = explode, autopct = "%.2f%%", shadow = True)
plt.axis('off')
plt.title('Target: Pass or Fail', fontsize = 20)
plt.legend()
plt.show()
signal['Fail'].value_counts().plot(kind="bar");
The dataset is highly imbalanced
def display_sbs(*args):
# Objective: To display dataframes side by side, for clearer and concise presentation
# Application: Simply pass two dataframes as arguments. * Works only for dataframes
from IPython.display import display_html
html_str=''
for df in args:
html_str+=df.to_html()
display_html(html_str.replace('table','table style="display:inline"'),raw=True)
return
Covariance matrix
covMatrix = np.cov(scale(signal_X))
Finding optimum value for n_components
eig_vals, eig_vecs = np.linalg.eig(covMatrix)
print('Eigen vectors \n%s' %eig_vecs)
print('\nEigen values \n%s' %eig_vals)
Eigen vectors [[-0.03379666+0.j 0.01038676+0.j 0.001029 +0.j ... 0.02054667+0.00583053j 0.03176366+0.01388011j 0.03176366-0.01388011j] [-0.01240142+0.j 0.01166233+0.j 0.00337195+0.j ... 0.00703836+0.00169194j 0.00377377+0.00027514j 0.00377377-0.00027514j] [-0.00867152+0.j -0.0040296 +0.j 0.01022463+0.j ... -0.00182878-0.00029404j 0.00803824-0.00091544j 0.00803824+0.00091544j] ... [ 0.03256352+0.j -0.01382025+0.j 0.07828815+0.j ... -0.00575298-0.00151179j -0.00648537-0.00334079j -0.00648537+0.00334079j] [ 0.0270483 +0.j -0.00955458+0.j 0.01257075+0.j ... 0.00640765-0.00183972j 0.02593988-0.0144177j 0.02593988+0.0144177j ] [ 0.03557511+0.j -0.04488534+0.j 0.08027278+0.j ... 0.01221704+0.00253615j -0.00622753+0.00475985j -0.00622753-0.00475985j]] Eigen values [ 6.62009761e+01+0.00000000e+00j 6.04503964e+01+0.00000000e+00j 5.11333135e+01+0.00000000e+00j ... 5.81020686e-17-1.55196648e-17j -1.77787322e-17+1.07126760e-17j -1.77787322e-17-1.07126760e-17j]
Sorting the eigen values in descending order
eig_pairs = [(np.abs(eig_vals[i]), eig_vecs[:,i]) for i in range(len(eig_vals))]
eig_pairs.sort(key = lambda x: x[0], reverse = True)
print('Eigen values in descending order: ')
for i in eig_pairs:
print(i[0])
Eigen values in descending order: 66.20097607057009 60.450396391748484 51.13331349097618 45.98246157527483 40.95252504426788 37.56511542663155 33.0331409240815 31.258989672166017 29.50887855432595 26.22718562490918 25.321624406654387 24.835831551477117 22.74856824589289 22.56947144274349 21.7877935165506 21.377887221514314 20.407439516035684 20.005065641428168 19.45652490538454 19.188267819394653 17.894626155358885 17.421174283052782 17.219103841996553 17.120298583253277 16.37185087380549 16.035030663069325 15.656673827389575 15.467809081008118 15.383815746205466 14.909760592454306 14.598760447912051 14.408829592373277 13.947617092394752 13.867868343821712 13.655668346243502 13.393476038861273 13.308605173819489 13.036078267488545 12.838631241889862 12.701785650585162 12.609204935773107 12.313264539799391 12.255337361735602 11.975183959498466 11.845044032605951 11.792035570612201 11.612213052369592 11.578270115448689 11.394740270981252 11.299503763166676 11.185068773307698 11.144846045105025 11.026094621840416 10.784545879859442 10.768740276132569 10.658864910679625 10.493655783549745 10.327374478542714 10.166345297605819 10.007237240256162 9.830075044966588 9.821595563322738 9.732311806874458 9.682590901968355 9.524903077372311 9.439979849751893 9.357887985773903 9.139944958935235 9.093692010958957 8.992537838501685 8.849120329246041 8.67257964372852 8.515597384952757 8.408803808313428 8.29255731274664 8.219429357030512 8.044119142438749 7.91201740932665 7.878146276824312 7.782381553524895 7.688957008140119 7.382882297928626 7.31381288268383 7.22277117233894 7.0737333523929555 6.9583994118871955 6.923152708158215 6.7646497321672605 6.472584484344559 6.3434412452945885 6.312942001506161 6.211319160349982 6.026196130866731 5.9611131133515824 5.854804171895091 5.749186138552409 5.282162860939466 5.177596037903088 5.106016202244368 4.654328336132513 4.633044292845632 4.391254452629983 4.126680121818035 3.8643534007388185 3.7170594635617955 3.6275676296453723 3.55262040467477 3.326148270760942 3.113028260337378 3.025405040511386 2.9067230160567115 2.8296165856174147 2.730982638789822 2.5938436915114447 2.5761909034432855 2.4343309943131874 2.3669606709702022 2.316205806815643 2.198452083493553 2.1088048091099743 1.9881889950981544 1.8485971504538243 1.7470514261436845 1.5627292293407125 1.5390931980207023 1.4641154864206898 1.4015950543105362 1.262263457493099 1.1947800091418548 1.1356330371146395 1.0876247078684658 1.050712372793527 0.9912740925114767 0.9545915893848752 0.9009964584172294 0.8045684416167226 0.6627312328698959 0.5698208571292387 0.4930168992661304 0.3003508827052847 0.0474224820573483 8.017708651052457e-15 7.908391394990448e-15 6.7513884221609414e-15 6.7513884221609414e-15 5.980474665395776e-15 5.980474665395776e-15 5.9061273888776995e-15 5.9061273888776995e-15 5.8575139365698696e-15 5.8575139365698696e-15 5.4797153984873985e-15 5.073349707430377e-15 5.073349707430377e-15 5.022562400676846e-15 4.891665308943568e-15 4.891665308943568e-15 4.4448088362511294e-15 4.4448088362511294e-15 4.4065502219499724e-15 4.220054635254248e-15 4.220054635254248e-15 4.172505936083891e-15 4.172505936083891e-15 3.9850502700789085e-15 3.9850502700789085e-15 3.939383955351783e-15 3.939383955351783e-15 3.861363064715751e-15 3.861363064715751e-15 3.77171049837745e-15 3.77171049837745e-15 3.731884577360845e-15 3.731884577360845e-15 3.633660960847809e-15 3.633660960847809e-15 3.51951724013136e-15 3.51951724013136e-15 3.492783684446391e-15 3.492783684446391e-15 3.4287400134474706e-15 3.4287400134474706e-15 3.3424267345517704e-15 3.3424267345517704e-15 3.2857210671563602e-15 3.220422351717172e-15 3.220422351717172e-15 3.205558577730159e-15 3.205558577730159e-15 3.2009503308107005e-15 3.2009503308107005e-15 3.146064562253016e-15 3.146064562253016e-15 3.1090026634560424e-15 3.1028255923009167e-15 3.1028255923009167e-15 3.0380997758495305e-15 3.0380997758495305e-15 3.0378024439629443e-15 3.0378024439629443e-15 3.0041244767711706e-15 3.0041244767711706e-15 2.9912487422440553e-15 2.9912487422440553e-15 2.9599466817820345e-15 2.9599466817820345e-15 2.9424894591057523e-15 2.9424894591057523e-15 2.927813126945874e-15 2.927813126945874e-15 2.9257566407459952e-15 2.9257566407459952e-15 2.8971831788755333e-15 2.8971831788755333e-15 2.8102725418285643e-15 2.8102725418285643e-15 2.7734050714688124e-15 2.7734050714688124e-15 2.7722121289234393e-15 2.7722121289234393e-15 2.7603080266377644e-15 2.7603080266377644e-15 2.731069369047585e-15 2.731069369047585e-15 2.7174540712090233e-15 2.7143723423800158e-15 2.7143723423800158e-15 2.6815019781119103e-15 2.6815019781119103e-15 2.6581438561530854e-15 2.6581438561530854e-15 2.657905083845942e-15 2.657905083845942e-15 2.6557668132092746e-15 2.6435688970086847e-15 2.6435688970086847e-15 2.63590253106172e-15 2.63590253106172e-15 2.6205156374282928e-15 2.6205156374282928e-15 2.611658231858226e-15 2.579532820827458e-15 2.579532820827458e-15 2.552158706083852e-15 2.552158706083852e-15 2.5305975550050465e-15 2.5248324568613753e-15 2.5248324568613753e-15 2.5172515760649415e-15 2.5172515760649415e-15 2.515413658133346e-15 2.515413658133346e-15 2.497757843273792e-15 2.497757843273792e-15 2.480214507059868e-15 2.480214507059868e-15 2.473855550587844e-15 2.473855550587844e-15 2.4513733465133236e-15 2.4513733465133236e-15 2.44861176072898e-15 2.4425275956990238e-15 2.4425275956990238e-15 2.4299699143594417e-15 2.4299699143594417e-15 2.4217291740050927e-15 2.4217291740050927e-15 2.4199336029600716e-15 2.4199336029600716e-15 2.4163384880329414e-15 2.4163384880329414e-15 2.4000461414766643e-15 2.4000461414766643e-15 2.3997432211805335e-15 2.3997432211805335e-15 2.3812336460748774e-15 2.3712417745825434e-15 2.3712417745825434e-15 2.3481552988202884e-15 2.3481552988202884e-15 2.3474350310511113e-15 2.3474350310511113e-15 2.338565745437379e-15 2.338565745437379e-15 2.3382762852071427e-15 2.3382762852071427e-15 2.3222779765363448e-15 2.315127310185865e-15 2.315127310185865e-15 2.3147836032163353e-15 2.302075442039475e-15 2.302075442039475e-15 2.2866959145197255e-15 2.2866959145197255e-15 2.2857969614119955e-15 2.2857969614119955e-15 2.280380361055836e-15 2.280380361055836e-15 2.275140768524447e-15 2.275140768524447e-15 2.271819011545372e-15 2.269279081104919e-15 2.269279081104919e-15 2.249443455264559e-15 2.249443455264559e-15 2.247430025667453e-15 2.247430025667453e-15 2.2438011805866187e-15 2.2438011805866187e-15 2.2268114651019545e-15 2.2268114651019545e-15 2.218706082084349e-15 2.218706082084349e-15 2.2122611316042677e-15 2.2122611316042677e-15 2.205722440712632e-15 2.205722440712632e-15 2.204288357583054e-15 2.204288357583054e-15 2.1954454118140482e-15 2.1954454118140482e-15 2.160448727222165e-15 2.160448727222165e-15 2.1520627245394334e-15 2.1520627245394334e-15 2.1490818331416727e-15 2.1490818331416727e-15 2.1439016662471466e-15 2.1439016662471466e-15 2.141656774681666e-15 2.141656774681666e-15 2.1412367169979167e-15 2.1412367169979167e-15 2.131424426946535e-15 2.131424426946535e-15 2.117834288642977e-15 2.117834288642977e-15 2.106506524152738e-15 2.106506524152738e-15 2.1045613675441823e-15 2.1045613675441823e-15 2.0999766370280352e-15 2.087282523183225e-15 2.081650992107727e-15 2.081650992107727e-15 2.0778083235597554e-15 2.0616219330778763e-15 2.0616219330778763e-15 2.059146934924161e-15 2.059146934924161e-15 2.0571269123802435e-15 2.0571269123802435e-15 2.053179981940808e-15 2.053179981940808e-15 2.0429682525851844e-15 2.0429682525851844e-15 2.0381639545944723e-15 2.0381639545944723e-15 2.0338531399295046e-15 2.0338531399295046e-15 2.0322756503856476e-15 2.0322756503856476e-15 2.0216079664673378e-15 2.0216079664673378e-15 2.0088090522072006e-15 2.0088090522072006e-15 2.003972553170274e-15 2.003972553170274e-15 1.997472367292801e-15 1.997472367292801e-15 1.9776462880383116e-15 1.9776462880383116e-15 1.977201933920337e-15 1.977201933920337e-15 1.976448305717277e-15 1.976448305717277e-15 1.9756732939081437e-15 1.9756732939081437e-15 1.968264547803497e-15 1.968264547803497e-15 1.9638505085293495e-15 1.9638505085293495e-15 1.95511379343637e-15 1.95511379343637e-15 1.943566729000781e-15 1.943566729000781e-15 1.9343350480091082e-15 1.9343350480091082e-15 1.9311230400103707e-15 1.921530007753536e-15 1.921530007753536e-15 1.9147764054398493e-15 1.9137112412569002e-15 1.9137112412569002e-15 1.913548988889126e-15 1.913548988889126e-15 1.9018283089721445e-15 1.9018283089721445e-15 1.8998557958096798e-15 1.8998557958096798e-15 1.8955517258074093e-15 1.8955517258074093e-15 1.8927067485097236e-15 1.8927067485097236e-15 1.8861194758139594e-15 1.8861194758139594e-15 1.885945431365876e-15 1.885945431365876e-15 1.877912555351107e-15 1.877912555351107e-15 1.875495164663608e-15 1.875495164663608e-15 1.8686783498062796e-15 1.8686783498062796e-15 1.864705492247066e-15 1.864705492247066e-15 1.8598497562061025e-15 1.8598497562061025e-15 1.8589247671935104e-15 1.8589247671935104e-15 1.858364348623622e-15 1.858364348623622e-15 1.8548635299081893e-15 1.8548635299081893e-15 1.8498692660208522e-15 1.8498692660208522e-15 1.848913805870677e-15 1.848913805870677e-15 1.8460800539928784e-15 1.8460800539928784e-15 1.8444656071002524e-15 1.8444656071002524e-15 1.837570543143428e-15 1.837570543143428e-15 1.8348280543023423e-15 1.8348280543023423e-15 1.8327742900572165e-15 1.8327742900572165e-15 1.824452626078403e-15 1.824452626078403e-15 1.8212974852264728e-15 1.8212974852264728e-15 1.8142388735461217e-15 1.8142388735461217e-15 1.813610044176611e-15 1.813610044176611e-15 1.8057130850495998e-15 1.80421832285145e-15 1.80421832285145e-15 1.803661205140153e-15 1.803661205140153e-15 1.802624793459661e-15 1.802624793459661e-15 1.800626366161714e-15 1.800626366161714e-15 1.795396331757845e-15 1.795396331757845e-15 1.7875549325862733e-15 1.7875549325862733e-15 1.785436338556034e-15 1.785436338556034e-15 1.7783517545613597e-15 1.7783517545613597e-15 1.77689683585279e-15 1.77689683585279e-15 1.762348125479267e-15 1.762348125479267e-15 1.755865115999195e-15 1.755865115999195e-15 1.7381782855002355e-15 1.7381782855002355e-15 1.7333998501471931e-15 1.7333998501471931e-15 1.7248813644194253e-15 1.7248813644194253e-15 1.7216316060514152e-15 1.7216316060514152e-15 1.7201764914473802e-15 1.7201764914473802e-15 1.7073096318712865e-15 1.7073096318712865e-15 1.7060145797710294e-15 1.7060145797710294e-15 1.7050000923176663e-15 1.7050000923176663e-15 1.702668119934864e-15 1.702668119934864e-15 1.7003948328453934e-15 1.7003948328453934e-15 1.6990526614787943e-15 1.6990526614787943e-15 1.684161994548902e-15 1.684161994548902e-15 1.6828855534092652e-15 1.6769671599528526e-15 1.6769671599528526e-15 1.6722598317695092e-15 1.6722598317695092e-15 1.6701833404016237e-15 1.6701833404016237e-15 1.6686403177971457e-15 1.6686403177971457e-15 1.6686342542021957e-15 1.6686342542021957e-15 1.6630348093798692e-15 1.6630348093798692e-15 1.658213759917692e-15 1.658213759917692e-15 1.6551326016654341e-15 1.6551326016654341e-15 1.6548476064592932e-15 1.6548476064592932e-15 1.6515817298578678e-15 1.6515817298578678e-15 1.6426371912372145e-15 1.6426371912372145e-15 1.6420501057476738e-15 1.6420501057476738e-15 1.6362972321155324e-15 1.6362972321155324e-15 1.6253158690962118e-15 1.6253158690962118e-15 1.6198546624387487e-15 1.6198546624387487e-15 1.6136589658418774e-15 1.6136589658418774e-15 1.6119172884986506e-15 1.6119172884986506e-15 1.6114617268873056e-15 1.6114617268873056e-15 1.599465618965853e-15 1.599465618965853e-15 1.5935381604590295e-15 1.5935381604590295e-15 1.5749276894779815e-15 1.5749276894779815e-15 1.5715107113726823e-15 1.5715107113726823e-15 1.570026290487367e-15 1.570026290487367e-15 1.5681531530660634e-15 1.5681531530660634e-15 1.5662059118518198e-15 1.5662059118518198e-15 1.56512478767169e-15 1.56512478767169e-15 1.5644684854523137e-15 1.5644684854523137e-15 1.5638966203034251e-15 1.5638966203034251e-15 1.5609110751749072e-15 1.5609110751749072e-15 1.5604666622745945e-15 1.5604666622745945e-15 1.5592208018489292e-15 1.5592208018489292e-15 1.5345673571051005e-15 1.5345673571051005e-15 1.5339963295578552e-15 1.5339963295578552e-15 1.5309751865572496e-15 1.5309751865572496e-15 1.5308751451064164e-15 1.5308751451064164e-15 1.5300858172276785e-15 1.5300858172276785e-15 1.5273784414943413e-15 1.5273784414943413e-15 1.5271831954488878e-15 1.5271831954488878e-15 1.5221446799579141e-15 1.5221446799579141e-15 1.5213918064304911e-15 1.5213918064304911e-15 1.5211152193153922e-15 1.5211152193153922e-15 1.5191418258826594e-15 1.5182933180635566e-15 1.5182933180635566e-15 1.501536381385743e-15 1.501536381385743e-15 1.4894078020873176e-15 1.4894078020873176e-15 1.4854462514718208e-15 1.4854462514718208e-15 1.484379268866596e-15 1.484379268866596e-15 1.4808825227584952e-15 1.4808825227584952e-15 1.479941126883387e-15 1.479941126883387e-15 1.4757841495220082e-15 1.4753826310042072e-15 1.4753826310042072e-15 1.4745643894636427e-15 1.4745643894636427e-15 1.4660299619925592e-15 1.4660299619925592e-15 1.458449264832964e-15 1.458449264832964e-15 1.448079421826079e-15 1.448079421826079e-15 1.4444836015811083e-15 1.4444836015811083e-15 1.439814587237326e-15 1.439814587237326e-15 1.4392022099119775e-15 1.4392022099119775e-15 1.4363427594282177e-15 1.4363427594282177e-15 1.4360171981238165e-15 1.4360171981238165e-15 1.4356118017956503e-15 1.4356118017956503e-15 1.4341857583644296e-15 1.4341857583644296e-15 1.427807834772533e-15 1.4224549142739736e-15 1.4224549142739736e-15 1.4211391645245632e-15 1.4211391645245632e-15 1.4168745667378916e-15 1.4168745667378916e-15 1.4036225420686547e-15 1.4036225420686547e-15 1.4024507731626988e-15 1.4024507731626988e-15 1.3994455692190315e-15 1.3994455692190315e-15 1.399322211752428e-15 1.399322211752428e-15 1.398222673360819e-15 1.398222673360819e-15 1.397256659070184e-15 1.397256659070184e-15 1.3965913253533257e-15 1.3965913253533257e-15 1.3906126044166627e-15 1.3906126044166627e-15 1.3892330517443668e-15 1.3892330517443668e-15 1.3840020386594325e-15 1.3840020386594325e-15 1.3834990976480067e-15 1.378879968710283e-15 1.378879968710283e-15 1.377702523815282e-15 1.377702523815282e-15 1.3730618181203848e-15 1.3730618181203848e-15 1.3644456059705164e-15 1.3644456059705164e-15 1.359696872093999e-15 1.359120727524317e-15 1.359120727524317e-15 1.3582363385000143e-15 1.3582363385000143e-15 1.3567348004324425e-15 1.3567348004324425e-15 1.352614105115972e-15 1.352614105115972e-15 1.347457870445391e-15 1.347457870445391e-15 1.3421840079701989e-15 1.3421840079701989e-15 1.3382427314375382e-15 1.3382427314375382e-15 1.3362786592125988e-15 1.3362786592125988e-15 1.334938955938242e-15 1.334938955938242e-15 1.3322890658968453e-15 1.3322890658968453e-15 1.3263344259747049e-15 1.3263344259747049e-15 1.3244050772626677e-15 1.3244050772626677e-15 1.3242271336137818e-15 1.3242271336137818e-15 1.3204569536171246e-15 1.3204569536171246e-15 1.3195014397923164e-15 1.3195014397923164e-15 1.3177825547071532e-15 1.3177825547071532e-15 1.3158717629204904e-15 1.3158717629204904e-15 1.304884609347918e-15 1.304884609347918e-15 1.3047944997591762e-15 1.3047944997591762e-15 1.30373606629154e-15 1.30373606629154e-15 1.3008557048348681e-15 1.3008557048348681e-15 1.2864029656819227e-15 1.2864029656819227e-15 1.2851915926324024e-15 1.2851915926324024e-15 1.2845471603174053e-15 1.2845471603174053e-15 1.2828924354989377e-15 1.2828924354989377e-15 1.2777984621990912e-15 1.2777984621990912e-15 1.273083685124303e-15 1.273083685124303e-15 1.2725425926391483e-15 1.2632968060809532e-15 1.2632968060809532e-15 1.2616205897798124e-15 1.2616205897798124e-15 1.259102628223551e-15 1.259102628223551e-15 1.2587387331165901e-15 1.2587387331165901e-15 1.2564667602775156e-15 1.2564667602775156e-15 1.2564591701515353e-15 1.2564591701515353e-15 1.2560311857347768e-15 1.2560311857347768e-15 1.2515319387815267e-15 1.2515319387815267e-15 1.2512216184762978e-15 1.2512216184762978e-15 1.2472200954309269e-15 1.2472200954309269e-15 1.2467168241203675e-15 1.2467168241203675e-15 1.2455935525425947e-15 1.2455935525425947e-15 1.2432759454749445e-15 1.2432759454749445e-15 1.2423628877519324e-15 1.2423628877519324e-15 1.241290694591238e-15 1.241290694591238e-15 1.2388445056330313e-15 1.2380469013336335e-15 1.2380469013336335e-15 1.228538936337516e-15 1.228538936337516e-15 1.2279580231727385e-15 1.2279580231727385e-15 1.224126184261912e-15 1.224126184261912e-15 1.2098284598876264e-15 1.2098284598876264e-15 1.2074505588059127e-15 1.2057714162121982e-15 1.2057714162121982e-15 1.2054478059016892e-15 1.2054478059016892e-15 1.1978163781686405e-15 1.1978163781686405e-15 1.191034675128013e-15 1.191034675128013e-15 1.1881510631881032e-15 1.1866698989653174e-15 1.1866698989653174e-15 1.177283815973249e-15 1.1733698179411995e-15 1.1733698179411995e-15 1.172360867499022e-15 1.172360867499022e-15 1.164397103544966e-15 1.1596825414209241e-15 1.1596825414209241e-15 1.1580724688221148e-15 1.1580724688221148e-15 1.157213960890176e-15 1.157213960890176e-15 1.1549951798729892e-15 1.1549951798729892e-15 1.1518116851345114e-15 1.1518116851345114e-15 1.1494582779505457e-15 1.1494582779505457e-15 1.1492243754158182e-15 1.1492243754158182e-15 1.1427357718194196e-15 1.1427357718194196e-15 1.141832961224722e-15 1.141832961224722e-15 1.1396157764392364e-15 1.1396157764392364e-15 1.1382427617509729e-15 1.1382427617509729e-15 1.1320942207312132e-15 1.1304754986182786e-15 1.1304754986182786e-15 1.1294141451514865e-15 1.1294141451514865e-15 1.1254145201273626e-15 1.1254145201273626e-15 1.123467900850475e-15 1.1215284769104237e-15 1.1215284769104237e-15 1.1159056285937253e-15 1.1159056285937253e-15 1.1154384500694538e-15 1.1154384500694538e-15 1.1116628588264202e-15 1.1116628588264202e-15 1.1104825094955325e-15 1.1104825094955325e-15 1.105202087918574e-15 1.105202087918574e-15 1.1012470614797664e-15 1.1012470614797664e-15 1.0967150391760564e-15 1.0967150391760564e-15 1.0960452944164338e-15 1.0960452944164338e-15 1.0945184644619846e-15 1.0945184644619846e-15 1.0938804061879364e-15 1.0938804061879364e-15 1.0910896839639119e-15 1.0910896839639119e-15 1.0895575212318021e-15 1.0895575212318021e-15 1.0880515645720827e-15 1.0880515645720827e-15 1.0866659908867454e-15 1.0866659908867454e-15 1.0798351229826755e-15 1.0798351229826755e-15 1.078430545557959e-15 1.078430545557959e-15 1.0729805999166324e-15 1.0729805999166324e-15 1.0718612050343894e-15 1.0710905168119495e-15 1.0710905168119495e-15 1.0642415764297605e-15 1.0642415764297605e-15 1.0641557738570578e-15 1.0641557738570578e-15 1.0586677651844147e-15 1.0586677651844147e-15 1.0553686919453198e-15 1.0553686919453198e-15 1.0502771996714013e-15 1.0502771996714013e-15 1.0500929295596594e-15 1.0500929295596594e-15 1.0495384642010537e-15 1.0495384642010537e-15 1.0454562331888317e-15 1.0454562331888317e-15 1.0440132064475601e-15 1.0440132064475601e-15 1.041844955026107e-15 1.041844955026107e-15 1.0414735022326737e-15 1.0414735022326737e-15 1.0397357803898142e-15 1.038766338513251e-15 1.038766338513251e-15 1.0225267295658367e-15 1.0225267295658367e-15 1.0223935382907944e-15 1.0223935382907944e-15 1.0195340116747033e-15 1.0195340116747033e-15 1.0187799986653779e-15 1.0187799986653779e-15 1.017163224957779e-15 1.017163224957779e-15 1.0165680739805858e-15 1.0165680739805858e-15 1.0149633422660937e-15 1.0149633422660937e-15 1.003036343085874e-15 1.003036343085874e-15 1.0024979892496523e-15 1.0024979892496523e-15 1.0007956492933244e-15 1.0007956492933244e-15 9.979811820574325e-16 9.979811820574325e-16 9.965754488275026e-16 9.965754488275026e-16 9.933108568063465e-16 9.863919129128118e-16 9.863919129128118e-16 9.74131809005499e-16 9.74131809005499e-16 9.716652750474038e-16 9.716652750474038e-16 9.713474749221408e-16 9.713474749221408e-16 9.713292726826867e-16 9.713292726826867e-16 9.657018159512861e-16 9.657018159512861e-16 9.649134658770162e-16 9.649134658770162e-16 9.647301132742652e-16 9.647301132742652e-16 9.646335730500376e-16 9.646335730500376e-16 9.646040515561127e-16 9.646040515561127e-16 9.641644885505086e-16 9.641644885505086e-16 9.54810462607856e-16 9.54810462607856e-16 9.531217416619525e-16 9.529749493362726e-16 9.529749493362726e-16 9.514558839694986e-16 9.514558839694986e-16 9.476045883290916e-16 9.476045883290916e-16 9.401635170008509e-16 9.401635170008509e-16 9.386106355537294e-16 9.386106355537294e-16 9.369103977266845e-16 9.369103977266845e-16 9.366420781134811e-16 9.366420781134811e-16 9.345287580799797e-16 9.345287580799797e-16 9.336330555127556e-16 9.336330555127556e-16 9.29079139961567e-16 9.29079139961567e-16 9.227301729480981e-16 9.227301729480981e-16 9.214550258757317e-16 9.214550258757317e-16 9.185601489859361e-16 9.185601489859361e-16 9.179318830853813e-16 9.179318830853813e-16 9.162843293055756e-16 9.162843293055756e-16 9.110909819714835e-16 9.110909819714835e-16 9.105958479518958e-16 9.105958479518958e-16 9.073360248991575e-16 9.073360248991575e-16 9.021073319628846e-16 9.021073319628846e-16 8.997363105407815e-16 8.997363105407815e-16 8.982001241164297e-16 8.952896764117014e-16 8.952896764117014e-16 8.943109191859097e-16 8.943109191859097e-16 8.92832466124952e-16 8.92832466124952e-16 8.86953953410771e-16 8.86667702575996e-16 8.86667702575996e-16 8.864626871252514e-16 8.864626871252514e-16 8.838584336581261e-16 8.838584336581261e-16 8.825940042913342e-16 8.825940042913342e-16 8.809546639303204e-16 8.809546639303204e-16 8.794414888627028e-16 8.794414888627028e-16 8.793757662128749e-16 8.793757662128749e-16 8.792584063051556e-16 8.792584063051556e-16 8.736690306809172e-16 8.736690306809172e-16 8.696161785658363e-16 8.696161785658363e-16 8.691474231122033e-16 8.691474231122033e-16 8.663496050016229e-16 8.663496050016229e-16 8.639936206511454e-16 8.639936206511454e-16 8.635531851076548e-16 8.635531851076548e-16 8.608936651772983e-16 8.608936651772983e-16 8.603776228218536e-16 8.603776228218536e-16 8.511677312428558e-16 8.511677312428558e-16 8.471673354331778e-16 8.471673354331778e-16 8.425070084264084e-16 8.425070084264084e-16 8.403213390416004e-16 8.403213390416004e-16 8.384466794196385e-16 8.384466794196385e-16 8.335438647714075e-16 8.335438647714075e-16 8.311086571932168e-16 8.311086571932168e-16 8.291491363336515e-16 8.291491363336515e-16 8.288575976190002e-16 8.288575976190002e-16 8.272204777305237e-16 8.272204777305237e-16 8.24834934732578e-16 8.24834934732578e-16 8.245208496989159e-16 8.203096126962348e-16 8.203096126962348e-16 8.169999743800455e-16 8.169999743800455e-16 8.135739658407154e-16 8.135739658407154e-16 8.100938228213088e-16 8.100938228213088e-16 8.087253653185058e-16 8.087253653185058e-16 8.080843415917114e-16 8.080843415917114e-16 8.03643612788321e-16 8.03643612788321e-16 8.006017290493393e-16 8.006017290493393e-16 7.893544916556413e-16 7.893544916556413e-16 7.890584803142563e-16 7.890584803142563e-16 7.881756715431799e-16 7.881756715431799e-16 7.880087700613046e-16 7.880087700613046e-16 7.859341022358562e-16 7.846144597863103e-16 7.846144597863103e-16 7.834364131432828e-16 7.834364131432828e-16 7.805387067645351e-16 7.805387067645351e-16 7.805185353784434e-16 7.805185353784434e-16 7.761250712269005e-16 7.761250712269005e-16 7.759209423353719e-16 7.759209423353719e-16 7.710699726847148e-16 7.689743112633496e-16 7.689743112633496e-16 7.689143908845308e-16 7.689143908845308e-16 7.662455531476104e-16 7.662455531476104e-16 7.642728318759333e-16 7.642728318759333e-16 7.589183559343541e-16 7.589183559343541e-16 7.56369949343722e-16 7.56369949343722e-16 7.552001977009673e-16 7.552001977009673e-16 7.551216512271274e-16 7.551216512271274e-16 7.542579602710727e-16 7.542579602710727e-16 7.481429155705511e-16 7.481429155705511e-16 7.43960930895636e-16 7.43960930895636e-16 7.415343797637808e-16 7.415343797637808e-16 7.375014544971936e-16 7.375014544971936e-16 7.348464626828047e-16 7.348464626828047e-16 7.343448733969073e-16 7.343448733969073e-16 7.339750744097272e-16 7.339750744097272e-16 7.329628441037144e-16 7.329628441037144e-16 7.26219991294293e-16 7.26219991294293e-16 7.231961039523195e-16 7.231961039523195e-16 7.21731299617e-16 7.21731299617e-16 7.170274165283927e-16 7.170274165283927e-16 7.1686188174682e-16 7.16467862420347e-16 7.16467862420347e-16 7.138235871387004e-16 7.138235871387004e-16 7.095088346890656e-16 7.095088346890656e-16 7.051867149378621e-16 7.051867149378621e-16 7.024353592881031e-16 7.024353592881031e-16 7.022382853998758e-16 7.022382853998758e-16 6.98970683612555e-16 6.979364374061764e-16 6.979364374061764e-16 6.932479165155236e-16 6.932479165155236e-16 6.89818366178536e-16 6.89818366178536e-16 6.874453004456017e-16 6.874453004456017e-16 6.867277625507534e-16 6.867277625507534e-16 6.864247306298182e-16 6.864247306298182e-16 6.862922680707044e-16 6.862922680707044e-16 6.848078713090783e-16 6.848078713090783e-16 6.823348143397431e-16 6.823348143397431e-16 6.781364044211297e-16 6.781364044211297e-16 6.748802477798161e-16 6.748802477798161e-16 6.735540996243916e-16 6.735540996243916e-16 6.707148619516532e-16 6.707148619516532e-16 6.686011905459118e-16 6.686011905459118e-16 6.671017135619441e-16 6.671017135619441e-16 6.636119951933779e-16 6.636119951933779e-16 6.635325897592183e-16 6.635325897592183e-16 6.628303758498241e-16 6.628303758498241e-16 6.559677666254685e-16 6.559677666254685e-16 6.558770460708173e-16 6.558770460708173e-16 6.520315693128171e-16 6.520315693128171e-16 6.512377899357612e-16 6.512377899357612e-16 6.495358848380217e-16 6.495358848380217e-16 6.459231717354147e-16 6.459231717354147e-16 6.409706255040012e-16 6.409706255040012e-16 6.406385216450062e-16 6.406385216450062e-16 6.400308720780916e-16 6.400308720780916e-16 6.398272169177208e-16 6.398272169177208e-16 6.374153140954491e-16 6.374153140954491e-16 6.342385392177962e-16 6.342385392177962e-16 6.338792061948607e-16 6.338792061948607e-16 6.3239190324265955e-16 6.3239190324265955e-16 6.319416260593898e-16 6.319416260593898e-16 6.316935526760518e-16 6.316935526760518e-16 6.281259258123936e-16 6.281259258123936e-16 6.242020844854132e-16 6.242020844854132e-16 6.218506087755095e-16 6.218506087755095e-16 6.150137485685999e-16 6.150137485685999e-16 6.130268107248741e-16 6.130268107248741e-16 6.125371473577871e-16 6.103910754791091e-16 6.103910754791091e-16 6.027114212802336e-16 6.027114212802336e-16 6.008769728485026e-16 6.008769728485026e-16 5.984618237226914e-16 5.984618237226914e-16 5.968172206051608e-16 5.968172206051608e-16 5.888461472971851e-16 5.888461472971851e-16 5.88846092505706e-16 5.88846092505706e-16 5.884903705436418e-16 5.884903705436418e-16 5.857952255149109e-16 5.814041474387307e-16 5.789694251121843e-16 5.789694251121843e-16 5.771085928025348e-16 5.771085928025348e-16 5.770619470698262e-16 5.770619470698262e-16 5.726299055052985e-16 5.726299055052985e-16 5.673105982614892e-16 5.673105982614892e-16 5.626980665761185e-16 5.626980665761185e-16 5.601128719016294e-16 5.601128719016294e-16 5.556345318809683e-16 5.556345318809683e-16 5.544659905148637e-16 5.544659905148637e-16 5.509746056343905e-16 5.509746056343905e-16 5.480159987204182e-16 5.480159987204182e-16 5.468624812789871e-16 5.468624812789871e-16 5.459669421720484e-16 5.459669421720484e-16 5.451276337809575e-16 5.451276337809575e-16 5.404904568254705e-16 5.404904568254705e-16 5.395032986186722e-16 5.395032986186722e-16 5.379516349728881e-16 5.379516349728881e-16 5.359958223712173e-16 5.359958223712173e-16 5.354375000804913e-16 5.354375000804913e-16 5.330921334193866e-16 5.330921334193866e-16 5.310156144050132e-16 5.310156144050132e-16 5.293607025670446e-16 5.293607025670446e-16 5.285764566447919e-16 5.285764566447919e-16 5.277576023063394e-16 5.277576023063394e-16 5.24707481390549e-16 5.24707481390549e-16 5.23780224955551e-16 5.23780224955551e-16 5.229691232071923e-16 5.229691232071923e-16 5.210325064946528e-16 5.210325064946528e-16 5.199730022547628e-16 5.199730022547628e-16 5.196393267278517e-16 5.196393267278517e-16 5.176214924413062e-16 5.176214924413062e-16 5.131976222157312e-16 5.131976222157312e-16 5.09866171312222e-16 5.09866171312222e-16 5.065131287365345e-16 5.065131287365345e-16 5.049653077304304e-16 5.049653077304304e-16 5.014650714712518e-16 5.014650714712518e-16 5.000551593891934e-16 5.000551593891934e-16 4.985550111901614e-16 4.985550111901614e-16 4.980039416030079e-16 4.980039416030079e-16 4.954891220036254e-16 4.954891220036254e-16 4.934662095618966e-16 4.934662095618966e-16 4.926086339336637e-16 4.926086339336637e-16 4.89475585393406e-16 4.89475585393406e-16 4.883775540453206e-16 4.868324689586442e-16 4.868324689586442e-16 4.850644868574309e-16 4.767941083689405e-16 4.767941083689405e-16 4.744342752353104e-16 4.744342752353104e-16 4.707360069071845e-16 4.707360069071845e-16 4.705286486234249e-16 4.705286486234249e-16 4.690031520571993e-16 4.690031520571993e-16 4.669759392445254e-16 4.669759392445254e-16 4.651184237444417e-16 4.651184237444417e-16 4.642369714341769e-16 4.642369714341769e-16 4.616244291018873e-16 4.565403696603452e-16 4.565403696603452e-16 4.550450496531275e-16 4.550450496531275e-16 4.542825582505777e-16 4.542825582505777e-16 4.537490881462806e-16 4.537490881462806e-16 4.495255507399246e-16 4.495255507399246e-16 4.475516416853729e-16 4.475516416853729e-16 4.460581548015065e-16 4.460581548015065e-16 4.432664140514345e-16 4.432664140514345e-16 4.4242787052597913e-16 4.4242787052597913e-16 4.3986528677673924e-16 4.3986528677673924e-16 4.3036639165863216e-16 4.3036639165863216e-16 4.2698586471126997e-16 4.2698586471126997e-16 4.26677365471161e-16 4.26677365471161e-16 4.2548130265155855e-16 4.230719223350957e-16 4.230719223350957e-16 4.2084416581755975e-16 4.2084416581755975e-16 4.188951716753849e-16 4.188951716753849e-16 4.1882050241702833e-16 4.1882050241702833e-16 4.182341482874371e-16 4.182341482874371e-16 4.138499187518494e-16 4.138499187518494e-16 4.1315462253604047e-16 4.1315462253604047e-16 4.0943083408880726e-16 4.0943083408880726e-16 4.0769739877631e-16 4.0769739877631e-16 4.053586208281969e-16 4.053586208281969e-16 4.003633302899757e-16 4.003633302899757e-16 4.0011278736483963e-16 4.0011278736483963e-16 3.9750034252633315e-16 3.9750034252633315e-16 3.9182449874793255e-16 3.9182449874793255e-16 3.8780468496890523e-16 3.8780468496890523e-16 3.827708588801851e-16 3.803547527312474e-16 3.803547527312474e-16 3.797687817194192e-16 3.797687817194192e-16 3.7872169038476204e-16 3.7872169038476204e-16 3.762957182374173e-16 3.762957182374173e-16 3.7375258603502573e-16 3.7375258603502573e-16 3.7109464612842404e-16 3.7109464612842404e-16 3.7023024171994994e-16 3.7023024171994994e-16 3.7019451245746283e-16 3.7019451245746283e-16 3.6789617535358547e-16 3.6789617535358547e-16 3.6730824936921436e-16 3.6730824936921436e-16 3.6639486819819045e-16 3.6639486819819045e-16 3.6436263807440846e-16 3.6436263807440846e-16 3.5326967905387837e-16 3.5326967905387837e-16 3.5270744077531773e-16 3.5235978349852003e-16 3.5235978349852003e-16 3.441403537684846e-16 3.441403537684846e-16 3.4343922092708724e-16 3.4343922092708724e-16 3.4302638193683756e-16 3.4302638193683756e-16 3.4104894849951515e-16 3.4104894849951515e-16 3.3897458423696357e-16 3.3897458423696357e-16 3.3298221668796614e-16 3.3298221668796614e-16 3.306369020130222e-16 3.306369020130222e-16 3.2816951268210583e-16 3.2816951268210583e-16 3.2494761484139815e-16 3.2494761484139815e-16 3.2286477256736375e-16 3.2286477256736375e-16 3.2143930077589956e-16 3.2143930077589956e-16 3.178337249058411e-16 3.178337249058411e-16 3.162051285332178e-16 3.150285563554842e-16 3.150285563554842e-16 3.1434928536475617e-16 3.1434928536475617e-16 3.1348234612468145e-16 3.1348234612468145e-16 3.125153016582628e-16 3.125153016582628e-16 3.1006499540774513e-16 3.1006499540774513e-16 3.0711608539001935e-16 3.0711608539001935e-16 3.04176221799625e-16 3.04176221799625e-16 3.0043869269531535e-16 3.0043869269531535e-16 2.991506348995105e-16 2.991506348995105e-16 2.9872844544797775e-16 2.9872844544797775e-16 2.9105422989040557e-16 2.9105422989040557e-16 2.9016966804119354e-16 2.9016966804119354e-16 2.823187285956318e-16 2.823187285956318e-16 2.8024524761390805e-16 2.8024524761390805e-16 2.7952056904603095e-16 2.7952056904603095e-16 2.7810418879653166e-16 2.776700810645302e-16 2.722164405772261e-16 2.722164405772261e-16 2.644596997947922e-16 2.644596997947922e-16 2.631208628380184e-16 2.631208628380184e-16 2.610766829901952e-16 2.610766829901952e-16 2.6052276390795257e-16 2.6052276390795257e-16 2.588381059513387e-16 2.5838469954670436e-16 2.5838469954670436e-16 2.521886932240825e-16 2.521886932240825e-16 2.479755198186813e-16 2.479755198186813e-16 2.4754610622045845e-16 2.4690421576744443e-16 2.4690421576744443e-16 2.406511619354999e-16 2.406511619354999e-16 2.40508626577491e-16 2.40508626577491e-16 2.3957456224128694e-16 2.3957456224128694e-16 2.3901094160130125e-16 2.3901094160130125e-16 2.2068202536238976e-16 2.1948612749491993e-16 2.1948612749491993e-16 2.1947392844591732e-16 2.1947392844591732e-16 2.1882471684479926e-16 2.1882471684479926e-16 2.175107388250525e-16 2.175107388250525e-16 2.1084853014454008e-16 2.1084853014454008e-16 2.0832849243270292e-16 2.071498911530505e-16 2.071498911530505e-16 2.0612959200080658e-16 2.0612959200080658e-16 2.002439302672217e-16 1.9474511712303148e-16 1.9474511712303148e-16 1.942302093828265e-16 1.942302093828265e-16 1.8975155537721393e-16 1.8975155537721393e-16 1.848429457468984e-16 1.848429457468984e-16 1.8220474293837547e-16 1.8220474293837547e-16 1.8181947728728211e-16 1.8181947728728211e-16 1.7645508343140313e-16 1.7645508343140313e-16 1.75805304150912e-16 1.75805304150912e-16 1.7411771345264642e-16 1.7411771345264642e-16 1.7107467818973248e-16 1.7107467818973248e-16 1.704665974414104e-16 1.704665974414104e-16 1.6749670477830626e-16 1.6749670477830626e-16 1.6215771242982542e-16 1.6215771242982542e-16 1.5522022901293475e-16 1.5522022901293475e-16 1.5290375816775216e-16 1.5290375816775216e-16 1.499482379258101e-16 1.4317458299329078e-16 1.394933367273746e-16 1.394933367273746e-16 1.3248412864170673e-16 1.3248412864170673e-16 1.3187398561629126e-16 1.3187398561629126e-16 1.3148145610233833e-16 1.3148145610233833e-16 1.3139175947763426e-16 1.3139175947763426e-16 1.2888349186238118e-16 1.2888349186238118e-16 1.2835262250490314e-16 1.2835262250490314e-16 1.0880531917176162e-16 1.0880531917176162e-16 1.0376299042448971e-16 1.0376299042448971e-16 1.003146321532679e-16 1.003146321532679e-16 9.893303564546101e-17 9.893303564546101e-17 7.213830908441397e-17 7.213830908441397e-17 6.492819136534264e-17 6.492819136534264e-17 6.013909184916426e-17 6.013909184916426e-17 4.777622969265494e-17 4.777622969265494e-17 3.8680891598808347e-17 3.8680891598808347e-17 2.0756799960815433e-17 2.0756799960815433e-17
Variance captured calculation
tot = sum(eig_vals)
var_exp = [(i / tot)*100 for i in sorted(eig_vals, reverse = True)]
cum_var_exp = np.cumsum(var_exp)
print('Variance captured by each component is \n', var_exp)
print(50*'-')
print('Cumulative variance captured as we traverse each component \n', cum_var_exp)
Variance captured by each component is [(4.261124997641734+0j), (3.8909803219161656+0j), (3.291272323483336+0j), (2.9597300236575927+0j), (2.6359706237058855+0j), (2.417934929132812+0j), (2.1262276011184156+0j), (2.0120316980085335+0j), (1.8993831741419152+0j), (1.688152092575756+0j), (1.6298642881801377+0j), (1.5985955033110906+0j), (1.464245673807003+0j), (1.4527178397750076+0j), (1.4024039690572312+0j), (1.376019736314078+0j), (1.3135554159646177+0j), (1.2876560187463602+0j), (1.252348372525425+0j), (1.2350816033211836+0j), (1.1518144196661044+0j), (1.1213399806470599+0j), (1.108333413995364+0j), (1.101973665500408+0j), (1.0537987074642006+0j), (1.0321187700241716+0j), (1.0077652654954017+0j), (0.9956087031643359+0j), (0.9902023463429296+0j), (0.9596890762099238+0j), (0.9396710860104058+0j), (0.9274459019663365+0j), (0.8977592684824383+0j), (0.8926261208123348+0j), (0.8789675500804448+0j), (0.8620911494366718+0j), (0.8566283090668332+0j), (0.8390867064799039+0j), (0.8263777328902747+0j), (0.8175694614034024+0j), (0.8116103650033032+0j), (0.7925617180807664+0j), (0.7888331484864551+0j), (0.7708006550655955+0j), (0.7624240037140834+0j), (0.759012034648139+0j), (0.7474374888770063+0j), (0.7452527008936259+0j), (0.733439527516245+0j), (0.7273094870210083+0j), (0.7199437074685562+0j), (0.7173547113118371+0j), (0.7097110980569669+0j), (0.6941634514254905+0j), (0.6931461000639094+0j), (0.6860738075669307+0j), (0.6754398746064669+0j), (0.6647369293107565+0j), (0.6543720448488034+0j), (0.6441308163844962+0j), (0.6327275062855522+0j), (0.6321817117467958+0j), (0.6264348290108138+0j), (0.623234468481765+0j), (0.6130846554262342+0j), (0.6076184446605798+0j), (0.6023344788573154+0j), (0.5883062494436888+0j), (0.5853291091576266+0j), (0.5788181693126616+0j), (0.5695868864817668+0j), (0.558223580790358+0j), (0.5481191825358278+0j), (0.5412452539925339+0j), (0.5337628741614592+0j), (0.5290558837419183+0j), (0.5177717791549621+0j), (0.5092688532072281+0j), (0.5070886870228158+0j), (0.5009246471466002+0j), (0.49491123632758127+0j), (0.4752102790873459+0j), (0.47076452270516866+0j), (0.46490448663311557+0j), (0.455311444085089+0j), (0.4478878022275773+0j), (0.4456190953404775+0j), (0.43541681384426983+0j), (0.41661759663766734+0j), (0.4083050985922361+0j), (0.40634196907617737+0j), (0.3998008626683146+0j), (0.3878851415507083+0j), (0.38369597563025226+0j), (0.3768532413565129+0j), (0.3700549784185389+0j), (0.33999432552732317+0j), (0.3332637253154878+0j), (0.3286563819626146+0j), (0.2995828158059925+0j), (0.29821283647511465+0j), (0.2826496711945845+0j), (0.26561994804434974+0j), (0.24873489566161053+0j), (0.23925410074044468+0j), (0.23349382478651354+0j), (0.22866973437603869+0j), (0.21409251620842798+0j), (0.2003747274715149+0j), (0.19473472766280553+0j), (0.18709558136630008+0j), (0.18213251046121906+0j), (0.175783788714351+0j), (0.16695663493076882+0j), (0.16582038678187264+0j), (0.15668936121643282+0j), (0.1523529694298528+0j), (0.14908605656484675+0j), (0.14150666176138846+0j), (0.13573638064893015+0j), (0.12797276309065134+0j), (0.11898772489352868+0j), (0.11245158222698678+0j), (0.10058740790453982+0j), (0.09906603934049665+0j), (0.0942399866124491+0j), (0.09021576534048555+0j), (0.08124747838460702+0j), (0.07690380513740265+0j), (0.07309672167731412+0j), (0.07000659364615314+0j), (0.06763067590225946+0j), (0.063804841949952+0j), (0.061443717683714476+0j), (0.057993986790401506+0j), (0.05178725303433653+0j), (0.04265768861307244+0j), (0.03667737309345277+0j), (0.031733771288859396+0j), (0.01933253450817629+0j), (0.003052419099219534+0j), (5.090354593625011e-16+0j), (4.1370092097819776e-16+1.3302912703918522e-16j), (4.1370092097819776e-16-1.3302912703918522e-16j), (3.527100905516289e-16+0j), (3.241492705568489e-16+3.955508445429582e-17j), (3.241492705568489e-16-3.955508445429582e-17j), (3.232847530061393e-16+0j), (2.860333251333579e-16+6.0252844465672204e-18j), (2.860333251333579e-16-6.0252844465672204e-18j), (2.4622408203172836e-16+3.386790625682065e-17j), (2.4622408203172836e-16-3.386790625682065e-17j), (2.3868920579777354e-16+2.6972399101349323e-17j), (2.3868920579777354e-16-2.6972399101349323e-17j), (2.3541847392826527e-16+9.41967174418064e-17j), (2.3541847392826527e-16-9.41967174418064e-17j), (2.338771250218947e-16+2.0410711560341134e-18j), (2.338771250218947e-16-2.0410711560341134e-18j), (2.2448663462664943e-16+1.2206486529200577e-17j), (2.2448663462664943e-16-1.2206486529200577e-17j), (2.1096343401306823e-16+4.2187437450661983e-17j), (2.1096343401306823e-16-4.2187437450661983e-17j), (2.0623742225868567e-16+6.199507181307628e-18j), (2.0623742225868567e-16-6.199507181307628e-18j), (2.022893008081289e-16+1.3422810412967255e-16j), (2.022893008081289e-16-1.3422810412967255e-16j), (1.96791701509761e-16+6.512338065775008e-17j), (1.96791701509761e-16-6.512338065775008e-17j), (1.9551013694601976e-16+4.0385365308034526e-18j), (1.9551013694601976e-16-4.0385365308034526e-18j), (1.9467398837263575e-16+1.830510906653415e-17j), (1.9467398837263575e-16-1.830510906653415e-17j), (1.8818575914485317e-16+4.445371263397509e-17j), (1.8818575914485317e-16-4.445371263397509e-17j), (1.8816352086675398e-16+1.0442796706591413e-17j), (1.8816352086675398e-16-1.0442796706591413e-17j), (1.8531258749669965e-16+2.084725355769858e-17j), (1.8531258749669965e-16-2.084725355769858e-17j), (1.7860739617068184e-16+2.86295349797765e-17j), (1.7860739617068184e-16-2.86295349797765e-17j), (1.777863853527031e-16+1.523067624098617e-17j), (1.777863853527031e-16-1.523067624098617e-17j), (1.721050591319571e-16+1.3047072246063525e-17j), (1.721050591319571e-16-1.3047072246063525e-17j), (1.7094240942323792e-16+0j), (1.7094159789829957e-16+6.881207818614124e-18j), (1.7094159789829957e-16-6.881207818614124e-18j), (1.6810329450739269e-16+0j), (1.652717036129838e-16+5.666101084481737e-17j), (1.652717036129838e-16-5.666101084481737e-17j), (1.619976687416035e-16+2.7249663647250973e-17j), (1.619976687416035e-16-2.7249663647250973e-17j), (1.6147643003482593e-16+1.3341810483001386e-17j), (1.6147643003482593e-16-1.3341810483001386e-17j), (1.581869861713334e-16+2.871392331589626e-17j), (1.581869861713334e-16-2.871392331589626e-17j), (1.5796931156409587e-16+7.712068233604716e-17j), (1.5796931156409587e-16-7.712068233604716e-17j), (1.5760856414019254e-16+0j), (1.5705776379470023e-16+7.073011354827954e-18j), (1.5705776379470023e-16-7.073011354827954e-18j), (1.5525545355988591e-16+1.2559767474235682e-17j), (1.5525545355988591e-16-1.2559767474235682e-17j), (1.5327167085420062e-16+0j), (1.532564886723619e-16+1.942451189588639e-17j), (1.532564886723619e-16-1.942451189588639e-17j), (1.525081240790025e-16+6.564341137980003e-17j), (1.525081240790025e-16-6.564341137980003e-17j), (1.5089254530113085e-16+8.689372777599957e-18j), (1.5089254530113085e-16-8.689372777599957e-18j), (1.4899451429963473e-16+0j), (1.4787602288534625e-16+9.432243770106802e-18j), (1.4787602288534625e-16-9.432243770106802e-18j), (1.4762531303625532e-16+2.0315639463566578e-17j), (1.4762531303625532e-16-2.0315639463566578e-17j), (1.474459820936549e-16+4.602739999390206e-17j), (1.474459820936549e-16-4.602739999390206e-17j), (1.4647036486620986e-16+1.3903237760497427e-17j), (1.4647036486620986e-16-1.3903237760497427e-17j), (1.4622903399331038e-16+0j), (1.445335295627205e-16+2.782007274998299e-17j), (1.445335295627205e-16-2.782007274998299e-17j), (1.4278577824887154e-16+2.648574540008606e-18j), (1.4278577824887154e-16-2.648574540008606e-18j), (1.4221214484507048e-16+3.633322241313979e-17j), (1.4221214484507048e-16-3.633322241313979e-17j), (1.412331637323338e-16+1.4490990210203152e-17j), (1.412331637323338e-16-1.4490990210203152e-17j), (1.386917377148922e-16+1.0120759833038352e-17j), (1.386917377148922e-16-1.0120759833038352e-17j), (1.3729518632526664e-16+1.2060750383568472e-17j), (1.3729518632526664e-16-1.2060750383568472e-17j), (1.3718767547434304e-16+1.1296353921007185e-18j), (1.3718767547434304e-16-1.1296353921007185e-18j), (1.357828832897339e-16+2.4612003952190776e-17j), (1.357828832897339e-16-2.4612003952190776e-17j), (1.353973002621964e-16+7.19710625435074e-18j), (1.353973002621964e-16-7.19710625435074e-18j), (1.3435106647363609e-16+0j), (1.333674550026945e-16+5.636415450062877e-17j), (1.333674550026945e-16-5.636415450062877e-17j), (1.3257495517696304e-16+1.1828353166300993e-16j), (1.3257495517696304e-16-1.1828353166300993e-16j), (1.3231308591683723e-16+3.8679849807696644e-17j), (1.3231308591683723e-16-3.8679849807696644e-17j), (1.320652703941898e-16+4.896335117861882e-18j), (1.320652703941898e-16-4.896335117861882e-18j), (1.2997986610170817e-16+1.471776501803226e-17j), (1.2997986610170817e-16-1.471776501803226e-17j), (1.2968181843973636e-16+1.7904714592745776e-17j), (1.2968181843973636e-16-1.7904714592745776e-17j), (1.2937257252581567e-16+2.355098197159503e-17j), (1.2937257252581567e-16-2.355098197159503e-17j), (1.289107815130633e-16+4.4826291112327765e-18j), (1.289107815130633e-16-4.4826291112327765e-18j), (1.2643888300526698e-16+1.4049491429539667e-17j), (1.2643888300526698e-16-1.4049491429539667e-17j), (1.2615145182095913e-16+2.836022261224393e-17j), (1.2615145182095913e-16-2.836022261224393e-17j), (1.2514074501361573e-16+4.3269119600188884e-17j), (1.2514074501361573e-16-4.3269119600188884e-17j), (1.244123595285032e-16+2.391643673105425e-17j), (1.244123595285032e-16-2.391643673105425e-17j), (1.243189173803349e-16+6.829621247096884e-18j), (1.243189173803349e-16-6.829621247096884e-18j), (1.2429962740335208e-16+0j), (1.2324745178102423e-16+0j), (1.2202439840027746e-16+8.010762275547764e-18j), (1.2202439840027746e-16-8.010762275547764e-18j), (1.2115313855956733e-16+1.752459147233634e-17j), (1.2115313855956733e-16-1.752459147233634e-17j), (1.2076919517748245e-16+5.0481363193460356e-18j), (1.2076919517748245e-16-5.0481363193460356e-18j), (1.1999463642106762e-16+8.28452275371079e-18j), (1.1999463642106762e-16-8.28452275371079e-18j), (1.1961178139855277e-16+1.0517376765781133e-18j), (1.1961178139855277e-16-1.0517376765781133e-18j), (1.1861117301044872e-16+1.575134879790811e-17j), (1.1861117301044872e-16-1.575134879790811e-17j), (1.1665871750877432e-16+5.236907473427973e-18j), (1.1665871750877432e-16-5.236907473427973e-18j), (1.1553941399228185e-16+1.170909696979746e-17j), (1.1553941399228185e-16-1.170909696979746e-17j), (1.1500862283666547e-16+3.392619221907504e-18j), (1.1500862283666547e-16-3.392619221907504e-18j), (1.149954045077162e-16+2.3805746248166774e-17j), (1.149954045077162e-16-2.3805746248166774e-17j), (1.1498928647503921e-16+2.7697377800491583e-17j), (1.1498928647503921e-16-2.7697377800491583e-17j), (1.1413719745938217e-16+7.33470530664813e-18j), (1.1413719745938217e-16-7.33470530664813e-18j), (1.1313233474223442e-16+4.872488068050645e-17j), (1.1313233474223442e-16-4.872488068050645e-17j), (1.1312532242309317e-16+1.7469673237412464e-17j), (1.1312532242309317e-16-1.7469673237412464e-17j), (1.1186088069658649e-16+2.092436679191241e-18j), (1.1186088069658649e-16-2.092436679191241e-18j), (1.1165349730361156e-16+2.003154603369962e-17j), (1.1165349730361156e-16-2.003154603369962e-17j), (1.1125263612392445e-16+3.9633381859086775e-17j), (1.1125263612392445e-16-3.9633381859086775e-17j), (1.1089634452659634e-16+1.2268165929907054e-17j), (1.1089634452659634e-16-1.2268165929907054e-17j), (1.1084644526003858e-16+3.3850830158449704e-17j), (1.1084644526003858e-16-3.3850830158449704e-17j), (1.0832144970427793e-16+0j), (1.0783979739613842e-16+2.5507457817874265e-17j), (1.0783979739613842e-16-2.5507457817874265e-17j), (1.0747979300800859e-16+9.962247666179563e-18j), (1.0747979300800859e-16-9.962247666179563e-18j), (1.073319459718607e-16+6.077147920495236e-18j), (1.073319459718607e-16-6.077147920495236e-18j), (1.0724181769212353e-16+1.5828302025457808e-17j), (1.0724181769212353e-16-1.5828302025457808e-17j), (1.0550957025677155e-16+6.83618385014461e-18j), (1.0550957025677155e-16-6.83618385014461e-18j), (1.0371981832734136e-16+2.6423539859381576e-18j), (1.0371981832734136e-16-2.6423539859381576e-18j), (1.03631413088651e-16+1.879909890664824e-17j), (1.03631413088651e-16-1.879909890664824e-17j), (1.0354746715294215e-16+1.491330411426786e-17j), (1.0354746715294215e-16-1.491330411426786e-17j), (1.029315234879326e-16+2.053268497362775e-18j), (1.029315234879326e-16-2.053268497362775e-18j), (1.0268608705211732e-16+2.911338050724519e-17j), (1.0268608705211732e-16-2.911338050724519e-17j), (1.0186968097950646e-16+1.1969527966194547e-17j), (1.0186968097950646e-16-1.1969527966194547e-17j), (1.0037110577627685e-16+4.465234583982231e-18j), (1.0037110577627685e-16-4.465234583982231e-18j), (9.99416085148329e-17+1.001124014549006e-17j), (9.99416085148329e-17-1.001124014549006e-17j), (9.9194996149014e-17+1.5257785674753043e-17j), (9.9194996149014e-17-1.5257785674753043e-17j), (9.908543651220199e-17+1.9864857276527244e-17j), (9.908543651220199e-17-1.9864857276527244e-17j), (9.891533481818974e-17+4.091596254369671e-17j), (9.891533481818974e-17-4.091596254369671e-17j), (9.86982551377567e-17+2.3131243413432896e-17j), (9.86982551377567e-17-2.3131243413432896e-17j), (9.821634040858781e-17+6.731360689359103e-17j), (9.821634040858781e-17-6.731360689359103e-17j), (9.789047497501518e-17+1.8972976258856444e-18j), (9.789047497501518e-17-1.8972976258856444e-18j), (9.7808855126918e-17+1.1957525983616266e-17j), (9.7808855126918e-17-1.1957525983616266e-17j), (9.728951152143735e-17+5.349024916743198e-17j), (9.728951152143735e-17-5.349024916743198e-17j), (9.62136609075961e-17+2.9863049890095614e-17j), (9.62136609075961e-17-2.9863049890095614e-17j), (9.499105759329211e-17+0j), (9.488885884591043e-17+8.385142349173585e-18j), (9.488885884591043e-17-8.385142349173585e-18j), (9.473071891428838e-17+6.699804039172773e-17j), (9.473071891428838e-17-6.699804039172773e-17j), (9.336385010184094e-17+1.7075797646176964e-17j), (9.336385010184094e-17-1.7075797646176964e-17j), (9.310022595382025e-17+1.2038047081858391e-17j), (9.310022595382025e-17-1.2038047081858391e-17j), (9.289053973614949e-17+3.9936775941773325e-18j), (9.289053973614949e-17-3.9936775941773325e-18j), (9.287636755223338e-17+2.3762300992098495e-17j), (9.287636755223338e-17-2.3762300992098495e-17j), (9.190299022317068e-17+0j), (9.155576442188733e-17+3.4880748942276187e-17j), (9.155576442188733e-17-3.4880748942276187e-17j), (9.110409852651189e-17+4.164993455512091e-18j), (9.110409852651189e-17-4.164993455512091e-18j), (9.110176515284463e-17+8.241089607520542e-18j), (9.110176515284463e-17-8.241089607520542e-18j), (9.081822067218563e-17+1.654798519892299e-17j), (9.081822067218563e-17-1.654798519892299e-17j), (8.905099198112077e-17+0j), (8.876054553169868e-17+7.577030644723183e-18j), (8.876054553169868e-17-7.577030644723183e-18j), (8.86173605011335e-17+1.6108163158510632e-17j), (8.86173605011335e-17-1.6108163158510632e-17j), (8.85055004884486e-17+1.2756358448304707e-17j), (8.85055004884486e-17-1.2756358448304707e-17j), (8.786399837742469e-17+2.5746184080379267e-17j), (8.786399837742469e-17-2.5746184080379267e-17j), (8.779291081865247e-17+1.9803289364159044e-17j), (8.779291081865247e-17-1.9803289364159044e-17j), (8.751892607623787e-17+0j), (8.736241377035625e-17+3.3052549583400685e-18j), (8.736241377035625e-17-3.3052549583400685e-18j), (8.602121986626204e-17+4.483799954558793e-18j), (8.602121986626204e-17-4.483799954558793e-18j), (8.567961925631572e-17+4.700652227922321e-17j), (8.567961925631572e-17-4.700652227922321e-17j), (8.565089916272985e-17+1.1289224774114971e-17j), (8.565089916272985e-17-1.1289224774114971e-17j), (8.507353629570612e-17+3.6139407772196507e-17j), (8.507353629570612e-17-3.6139407772196507e-17j), (8.484736855866068e-17+2.850895813358463e-17j), (8.484736855866068e-17-2.850895813358463e-17j), (8.353491241105995e-17+1.7612830703649485e-17j), (8.353491241105995e-17-1.7612830703649485e-17j), (8.332381328803955e-17+1.0518136958432498e-17j), (8.332381328803955e-17-1.0518136958432498e-17j), (8.25540455047334e-17+5.785953297593471e-17j), (8.25540455047334e-17-5.785953297593471e-17j), (8.200321575696419e-17+6.3332002055744e-18j), (8.200321575696419e-17-6.3332002055744e-18j), (8.128126513575917e-17+1.5153757598944138e-17j), (8.128126513575917e-17-1.5153757598944138e-17j), (8.110034280845718e-17+5.890636307293634e-18j), (8.110034280845718e-17-5.890636307293634e-18j), (8.086364702975318e-17+1.3166431653531711e-18j), (8.086364702975318e-17-1.3166431653531711e-18j), (8.052719601718551e-17+2.3871196750317992e-17j), (8.052719601718551e-17-2.3871196750317992e-17j), (7.994160031030022e-17+3.659532420196832e-18j), (7.994160031030022e-17-3.659532420196832e-18j), (7.941899501537702e-17+1.0980568111195353e-17j), (7.941899501537702e-17-1.0980568111195353e-17j), (7.883044696229597e-17+1.8812095141382138e-17j), (7.883044696229597e-17-1.8812095141382138e-17j), (7.879576877855465e-17+1.6751515328168764e-17j), (7.879576877855465e-17-1.6751515328168764e-17j), (7.868557494973596e-17+3.279764201918969e-17j), (7.868557494973596e-17-3.279764201918969e-17j), (7.863761850382745e-17+8.322090951916907e-18j), (7.863761850382745e-17-8.322090951916907e-18j), (7.786528109291036e-17+1.3572695679800422e-17j), (7.786528109291036e-17-1.3572695679800422e-17j), (7.748754235049865e-17+4.380880046758369e-18j), (7.748754235049865e-17-4.380880046758369e-18j), (7.670274661597087e-17+2.2367493685030672e-17j), (7.670274661597087e-17-2.2367493685030672e-17j), (7.577763645380437e-17+0j), (7.544199525459048e-17+3.5549451443105746e-18j), (7.544199525459048e-17-3.5549451443105746e-18j), (7.42709027673526e-17+3.114485072755923e-17j), (7.42709027673526e-17-3.114485072755923e-17j), (7.425257941227165e-17+2.2512951390960187e-17j), (7.425257941227165e-17-2.2512951390960187e-17j), (7.37198243727157e-17+1.1034423819941099e-17j), (7.37198243727157e-17-1.1034423819941099e-17j), (7.35989565454806e-17+8.924639075757612e-18j), (7.35989565454806e-17-8.924639075757612e-18j), (7.358009944755959e-17+1.1580366199360469e-17j), (7.358009944755959e-17-1.1580366199360469e-17j), (7.286894045944496e-17+0j), (7.27342367475246e-17+2.1070120331973603e-18j), (7.27342367475246e-17-2.1070120331973603e-18j), (7.193120876052666e-17+3.4936371726647595e-17j), (7.193120876052666e-17-3.4936371726647595e-17j), (7.108025859518174e-17+2.796022231426643e-17j), (7.108025859518174e-17-2.796022231426643e-17j), (7.043539080979483e-17+3.9950349711966505e-18j), (7.043539080979483e-17-3.9950349711966505e-18j), (6.980149330738523e-17+4.411837056857072e-17j), (6.980149330738523e-17-4.411837056857072e-17j), (6.943504847190925e-17+9.14028734898198e-18j), (6.943504847190925e-17-9.14028734898198e-18j), (6.922979569636563e-17+2.397815107772543e-17j), (6.922979569636563e-17-2.397815107772543e-17j), (6.899195217160636e-17+0j), (6.889325054231187e-17+1.472982364752597e-17j), (6.889325054231187e-17-1.472982364752597e-17j), (6.876323794064765e-17+9.713159431598229e-17j), (6.876323794064765e-17-9.713159431598229e-17j), (6.864859535393642e-17+1.3403626690543297e-17j), (6.864859535393642e-17-1.3403626690543297e-17j), (6.85463122068318e-17+2.2641436957731094e-17j), (6.85463122068318e-17-2.2641436957731094e-17j), (6.82329774864318e-17+5.996676991292659e-18j), (6.82329774864318e-17-5.996676991292659e-18j), (6.692415108862943e-17+0j), (6.659462368064037e-17+1.1630840763684877e-17j), (6.659462368064037e-17-1.1630840763684877e-17j), (6.532974293992116e-17+4.302007230509719e-18j), (6.532974293992116e-17-4.302007230509719e-18j), (6.495779670411544e-17+7.870995983654341e-18j), (6.495779670411544e-17-7.870995983654341e-18j), (6.408856312560622e-17+1.494438643775303e-17j), (6.408856312560622e-17-1.494438643775303e-17j), (6.393594133498103e-17+0j), (6.374249146412506e-17+3.100570214239299e-17j), (6.374249146412506e-17-3.100570214239299e-17j), (6.319599845287428e-17+2.183482526892771e-17j), (6.319599845287428e-17-2.183482526892771e-17j), (6.306818750543353e-17+2.2791126010443392e-17j), (6.306818750543353e-17-2.2791126010443392e-17j), (6.2901954740389e-17+1.4546057091562365e-17j), (6.2901954740389e-17-1.4546057091562365e-17j), (6.274063322277972e-17+1.9885169732292048e-17j), (6.274063322277972e-17-1.9885169732292048e-17j), (6.244932617138251e-17+1.6243526538539228e-17j), (6.244932617138251e-17-1.6243526538539228e-17j), (6.231661741965342e-17+5.05199019716944e-18j), (6.231661741965342e-17-5.05199019716944e-18j), (6.213870572036634e-17+1.3032139865216368e-17j), (6.213870572036634e-17-1.3032139865216368e-17j), (6.1842157179132e-17+7.70194407394692e-17j), (6.1842157179132e-17-7.70194407394692e-17j), (6.159447574344159e-17+3.2203945845862986e-17j), (6.159447574344159e-17-3.2203945845862986e-17j), (6.143625568524564e-17+9.029774756239665e-18j), (6.143625568524564e-17-9.029774756239665e-18j), (6.139421181877478e-17+2.795111313418409e-18j), (6.139421181877478e-17-2.795111313418409e-18j), (6.134910873311235e-17+0j), (6.087370574789013e-17+3.574326463032333e-17j), (6.087370574789013e-17-3.574326463032333e-17j), (5.906907677570204e-17+5.349681840435964e-18j), (5.906907677570204e-17-5.349681840435964e-18j), (5.90240546149662e-17+1.3350289093249933e-17j), (5.90240546149662e-17-1.3350289093249933e-17j), (5.900783016117703e-17+5.551949466469507e-17j), (5.900783016117703e-17-5.551949466469507e-17j), (5.884923420075372e-17+2.6199411296816362e-17j), (5.884923420075372e-17-2.6199411296816362e-17j), (5.839431014774441e-17+9.001709802684043e-18j), (5.839431014774441e-17-9.001709802684043e-18j), (5.833892229518131e-17+2.714537114315763e-18j), (5.833892229518131e-17-2.714537114315763e-18j), (5.781399654406134e-17+0j), (5.774436763169487e-17+6.098287960620651e-18j), (5.774436763169487e-17-6.098287960620651e-18j), (5.773614095526508e-17+4.0298891542953345e-17j), (5.773614095526508e-17-4.0298891542953345e-17j), (5.762629947221052e-17+2.430633274492166e-17j), (5.762629947221052e-17-2.430633274492166e-17j), (5.731422522302999e-17+1.557553631936699e-17j), (5.731422522302999e-17-1.557553631936699e-17j), (5.629017115699052e-17+2.6198460340123588e-17j), (5.629017115699052e-17-2.6198460340123588e-17j), (5.502112375674385e-17+2.123869151372505e-17j), (5.502112375674385e-17-2.123869151372505e-17j), (5.474438233968842e-17+9.624028273676624e-18j), (5.474438233968842e-17-9.624028273676624e-18j), (5.4152121619259044e-17+1.5163269595982323e-17j), (5.4152121619259044e-17-1.5163269595982323e-17j), (5.371312066756054e-17+7.463885748856835e-18j), (5.371312066756054e-17-7.463885748856835e-18j), (5.333131629111254e-17+4.188672304603865e-18j), (5.333131629111254e-17-4.188672304603865e-18j), (5.330481472472526e-17+2.2112780561213458e-18j), (5.330481472472526e-17-2.2112780561213458e-18j), (5.3071519670398706e-17+0j), (5.2868076132991095e-17+1.6599247057868655e-17j), (5.2868076132991095e-17-1.6599247057868655e-17j), (5.1932779756599426e-17+1.1032626253198843e-17j), (5.1932779756599426e-17-1.1032626253198843e-17j), (5.1798922738199054e-17+4.720375424869912e-18j), (5.1798922738199054e-17-4.720375424869912e-18j), (5.1784103328418195e-17+2.068859804496179e-17j), (5.1784103328418195e-17-2.068859804496179e-17j), (5.13608444155117e-17+1.4040087774400125e-17j), (5.13608444155117e-17-1.4040087774400125e-17j), (5.1187186555320645e-17+5.432958471396583e-17j), (5.1187186555320645e-17-5.432958471396583e-17j), (5.0587825864777794e-17+0j), (5.045899199937241e-17+3.302514948387194e-17j), (5.045899199937241e-17-3.302514948387194e-17j), (5.0306100860428386e-17+6.477119758806584e-18j), (5.0306100860428386e-17-6.477119758806584e-18j), (4.9631073898899896e-17+0j), (4.9515460293130715e-17+4.30663067657284e-17j), (4.9515460293130715e-17-4.30663067657284e-17j), (4.895862951976961e-17+7.27494177356091e-18j), (4.895862951976961e-17-7.27494177356091e-18j), (4.860188832664157e-17+2.6547031319951698e-17j), (4.860188832664157e-17-2.6547031319951698e-17j), (4.803751271209003e-17+3.366615048679972e-18j), (4.803751271209003e-17-3.366615048679972e-18j), (4.758461252407375e-17+1.521025431161921e-17j), (4.758461252407375e-17-1.521025431161921e-17j), (4.744173959494023e-17+3.74067265785204e-17j), (4.744173959494023e-17-3.74067265785204e-17j), (4.7435569422417766e-17+2.9714844868243585e-17j), (4.7435569422417766e-17-2.9714844868243585e-17j), (4.7279147378608846e-17+1.3871914982375945e-18j), (4.7279147378608846e-17-1.3871914982375945e-18j), (4.69289812677322e-17+9.526542858382575e-18j), (4.69289812677322e-17-9.526542858382575e-18j), (4.6877827502927894e-17+6.054603879839302e-18j), (4.6877827502927894e-17-6.054603879839302e-18j), (4.614150697694866e-17+1.7901165628080873e-17j), (4.614150697694866e-17-1.7901165628080873e-17j), (4.499029514889963e-17+0j), (4.488005193877976e-17+1.8867934525858944e-17j), (4.488005193877976e-17-1.8867934525858944e-17j), (4.4473101358184786e-17+3.6415443001957115e-18j), (4.4473101358184786e-17-3.6415443001957115e-18j), (4.442253572710693e-17+3.660892660693618e-17j), (4.442253572710693e-17-3.660892660693618e-17j), (4.363317136603463e-17+1.1800098965199144e-17j), (4.363317136603463e-17-1.1800098965199144e-17j), (4.3621343426926995e-17+7.020992336721442e-18j), (4.3621343426926995e-17-7.020992336721442e-18j), (4.3452547667321786e-17+8.354706897869376e-18j), (4.3452547667321786e-17-8.354706897869376e-18j), (4.2862868797953754e-17+1.701495125711735e-17j), (4.2862868797953754e-17-1.701495125711735e-17j), (4.282781362096598e-17+1.872971261807949e-17j), (4.282781362096598e-17-1.872971261807949e-17j), (4.224587914487919e-17+6.309038841212403e-18j), (4.224587914487919e-17-6.309038841212403e-18j), (4.219841529418331e-17+2.1242247566093423e-17j), (4.219841529418331e-17-2.1242247566093423e-17j), (4.1829382845178113e-17+2.8840145715296916e-17j), (4.1829382845178113e-17-2.8840145715296916e-17j), (4.139125046692217e-17+2.5488366461050544e-17j), (4.139125046692217e-17-2.5488366461050544e-17j), (4.065296995807684e-17+1.506429483115499e-17j), (4.065296995807684e-17-1.506429483115499e-17j), (4.064042165719904e-17+6.981090983901206e-18j), (4.064042165719904e-17-6.981090983901206e-18j), (3.931012889575722e-17+4.667700675950467e-18j), (3.931012889575722e-17-4.667700675950467e-18j), (3.9234228459071193e-17+1.0672531758763814e-17j), (3.9234228459071193e-17-1.0672531758763814e-17j), (3.90452714640045e-17+2.0454759963498775e-17j), (3.90452714640045e-17-2.0454759963498775e-17j), (3.895290333539227e-17+1.3409948342106635e-17j), (3.895290333539227e-17-1.3409948342106635e-17j), (3.8752454896405e-17+1.8040333403379455e-18j), (3.8752454896405e-17-1.8040333403379455e-18j), (3.7705587245116706e-17+0j), (3.7623932534332153e-17+8.96099769393041e-18j), (3.7623932534332153e-17-8.96099769393041e-18j), (3.7421914454680874e-17+5.931237451337463e-17j), (3.7421914454680874e-17-5.931237451337463e-17j), (3.737859166986623e-17+6.276925191507122e-18j), (3.737859166986623e-17-6.276925191507122e-18j), (3.7237595469812285e-17+3.8625519166755935e-17j), (3.7237595469812285e-17-3.8625519166755935e-17j), (3.703934277655763e-17+1.620782250507174e-17j), (3.703934277655763e-17-1.620782250507174e-17j), (3.666606788945068e-17+2.329388554896335e-17j), (3.666606788945068e-17-2.329388554896335e-17j), (3.5956163091562384e-17+1.3820761262781544e-17j), (3.5956163091562384e-17-1.3820761262781544e-17j), (3.589425882314094e-17+3.2689479987558975e-17j), (3.589425882314094e-17-3.2689479987558975e-17j), (3.5312895499433297e-17+8.050367635723056e-18j), (3.5312895499433297e-17-8.050367635723056e-18j), (3.492116735580015e-17+1.9868563845314023e-17j), (3.492116735580015e-17-1.9868563845314023e-17j), (3.455148010250088e-17+9.202702854837308e-17j), (3.455148010250088e-17-9.202702854837308e-17j), (3.4265759664098083e-17+1.9221407052590685e-17j), (3.4265759664098083e-17-1.9221407052590685e-17j), (3.4179587074368535e-17+4.409131567633447e-20j), (3.4179587074368535e-17-4.409131567633447e-20j), (3.4096627729324835e-17+9.753818189125077e-18j), (3.4096627729324835e-17-9.753818189125077e-18j), (3.36159229084769e-17+1.754756837086342e-18j), (3.36159229084769e-17-1.754756837086342e-18j), (3.321372622393893e-17+2.5007930380209526e-17j), (3.321372622393893e-17-2.5007930380209526e-17j), (3.2804206520177013e-17+6.972584895706438e-18j), (3.2804206520177013e-17-6.972584895706438e-18j), (3.2409249933545087e-17+2.4648893074943053e-18j), (3.2409249933545087e-17-2.4648893074943053e-18j), (3.234459628322933e-17+2.9310159928088066e-17j), (3.234459628322933e-17-2.9310159928088066e-17j), (3.143515288371672e-17+0j), (3.040513178775175e-17+3.1693069604623795e-17j), (3.040513178775175e-17-3.1693069604623795e-17j), (3.0207382464788674e-17+2.0516272570403415e-17j), (3.0207382464788674e-17-2.0516272570403415e-17j), (2.970473044189162e-17+1.1090269670826683e-17j), (2.970473044189162e-17-1.1090269670826683e-17j), (2.970191402054747e-17+5.988637329636909e-18j), (2.970191402054747e-17-5.988637329636909e-18j), (2.911580965236243e-17+1.650554337799897e-17j), (2.911580965236243e-17-1.650554337799897e-17j), (2.8984266301314484e-17+1.8646606280645163e-17j), (2.8984266301314484e-17-1.8646606280645163e-17j), (2.889499233977586e-17+1.5093314008771004e-18j), (2.889499233977586e-17-1.5093314008771004e-18j), (2.8504804243447527e-17+1.0234010597308729e-17j), (2.8504804243447527e-17-1.0234010597308729e-17j), (2.832945093968513e-17+1.4649206631032697e-17j), (2.832945093968513e-17-1.4649206631032697e-17j), (2.831725026826182e-17+4.739875574667607e-18j), (2.831725026826182e-17-4.739875574667607e-18j), (2.7782218657269875e-17+2.991193619511319e-17j), (2.7782218657269875e-17-2.991193619511319e-17j), (2.7644500477276077e-17+6.114265270706818e-18j), (2.7644500477276077e-17-6.114265270706818e-18j), (2.6878944398870698e-17+4.9063742110510935e-17j), (2.6878944398870698e-17-4.9063742110510935e-17j), (2.6668214013270413e-17+4.2798301095423234e-17j), (2.6668214013270413e-17-4.2798301095423234e-17j), (2.610503527604956e-17+1.5160736783231752e-17j), (2.610503527604956e-17-1.5160736783231752e-17j), (2.5937770524288452e-17+1.7884332281087367e-17j), (2.5937770524288452e-17-1.7884332281087367e-17j), (2.5905308398163616e-17+2.2975622439788092e-17j), (2.5905308398163616e-17-2.2975622439788092e-17j), (2.58181799885061e-17+4.697549478708487e-18j), (2.58181799885061e-17-4.697549478708487e-18j), (2.5156788602298812e-17+2.3609277781178842e-17j), (2.5156788602298812e-17-2.3609277781178842e-17j), (2.4637619744525736e-17+0j), (2.4450479629521788e-17+8.140405374232645e-18j), (2.4450479629521788e-17-8.140405374232645e-18j), (2.4008666842372008e-17+1.5264818887614461e-18j), (2.4008666842372008e-17-1.5264818887614461e-18j), (2.3496517758005163e-17+2.6218627666181007e-18j), (2.3496517758005163e-17-2.6218627666181007e-18j), (2.3313663063631022e-17+1.288642259981941e-17j), (2.3313663063631022e-17-1.288642259981941e-17j), (2.302004293003647e-17+1.6764471074209748e-17j), (2.302004293003647e-17-1.6764471074209748e-17j), (2.2919099497695718e-17+2.7357303107248597e-17j), (2.2919099497695718e-17-2.7357303107248597e-17j), (2.2426628515699148e-17+3.435635075867725e-17j), (2.2426628515699148e-17-3.435635075867725e-17j), (2.1291956786847877e-17+1.0363585359733482e-17j), (2.1291956786847877e-17-1.0363585359733482e-17j), (2.1142805853414318e-17+3.0538797224213735e-17j), (2.1142805853414318e-17-3.0538797224213735e-17j), (2.105975487975915e-17+1.1816252499986234e-16j), (2.105975487975915e-17-1.1816252499986234e-16j), (2.1056055759412874e-17+3.09248528067108e-18j), (2.1056055759412874e-17-3.09248528067108e-18j), (2.1018746478314433e-17+1.1229488452632422e-17j), (2.1018746478314433e-17-1.1229488452632422e-17j), (2.0955107224193488e-17+6.540591583562151e-18j), (2.0955107224193488e-17-6.540591583562151e-18j), (2.094460852223972e-17+2.4312689841501325e-17j), (2.094460852223972e-17-2.4312689841501325e-17j), (2.0339035813022916e-17+6.75964425598434e-18j), (2.0339035813022916e-17-6.75964425598434e-18j), (2.031544679829089e-17+1.3472943686431243e-17j), (2.031544679829089e-17-1.3472943686431243e-17j), (2.0116381972477966e-17+4.5712862220703714e-17j), (2.0116381972477966e-17-4.5712862220703714e-17j), (2.00678181116586e-17+2.2216416494835775e-17j), (2.00678181116586e-17-2.2216416494835775e-17j), (1.9398158959622277e-17+1.872711497781141e-17j), (1.9398158959622277e-17-1.872711497781141e-17j), (1.8569882209873172e-17+2.8138700204016674e-17j), (1.8569882209873172e-17-2.8138700204016674e-17j), (1.8391357427030656e-17+1.2265085462066059e-17j), (1.8391357427030656e-17-1.2265085462066059e-17j), (1.801342116029693e-17+1.559795399878053e-17j), (1.801342116029693e-17-1.559795399878053e-17j), (1.7976663859103304e-17+9.381249483568772e-18j), (1.7976663859103304e-17-9.381249483568772e-18j), (1.7944708729668094e-17+5.3810303107026005e-18j), (1.7944708729668094e-17-5.3810303107026005e-18j), (1.790059272791584e-17+0j), (1.6917904568151955e-17+2.331623629116932e-17j), (1.6917904568151955e-17-2.331623629116932e-17j), (1.6660502443887776e-17+0j), (1.6521421483188847e-17+3.0719599648249185e-18j), (1.6521421483188847e-17-3.0719599648249185e-18j), (1.533299443144251e-17+2.0482372504003555e-17j), (1.533299443144251e-17-2.0482372504003555e-17j), (1.526092877152969e-17+8.232905035589492e-17j), (1.526092877152969e-17-8.232905035589492e-17j), (1.4376198290349128e-17+5.578447310915392e-18j), (1.4376198290349128e-17-5.578447310915392e-18j), (1.4204529156782695e-17+0j), (1.417180379933135e-17+3.0153186172941065e-17j), (1.417180379933135e-17-3.0153186172941065e-17j), (1.3703328357230643e-17+1.607498328637997e-17j), (1.3703328357230643e-17-1.607498328637997e-17j), (1.3695543686407837e-17+7.236589988586196e-18j), (1.3695543686407837e-17-7.236589988586196e-18j), (1.3323200343986707e-17+3.843200082992759e-17j), (1.3323200343986707e-17-3.843200082992759e-17j), (1.3172630792638487e-17+1.078155920514008e-17j), (1.3172630792638487e-17-1.078155920514008e-17j), (1.2889000548543407e-17+0j), (1.2781852201568434e-17+5.619124787168469e-17j), (1.2781852201568434e-17-5.619124787168469e-17j), (1.2574663960107368e-17+4.4340046216159384e-18j), (1.2574663960107368e-17-4.4340046216159384e-18j), (1.2519151294899611e-17+1.2258792069863419e-17j), (1.2519151294899611e-17-1.2258792069863419e-17j), (1.2041449560536592e-17+8.912676796643597e-17j), (1.2041449560536592e-17-8.912676796643597e-17j), (1.2031517282785021e-17+1.8598769853666908e-17j), (1.2031517282785021e-17-1.8598769853666908e-17j), (1.1986143872724594e-17+3.178501299409892e-17j), (1.1986143872724594e-17-3.178501299409892e-17j), (1.1814353042891816e-17+2.4792688593894492e-17j), (1.1814353042891816e-17-2.4792688593894492e-17j), (1.121998583725167e-17+5.5145155149952085e-18j), (1.121998583725167e-17-5.5145155149952085e-18j), (1.0996320849932837e-17+2.1646165849617698e-18j), (1.0996320849932837e-17-2.1646165849617698e-18j), (1.0711361179394229e-17+9.211650597298553e-18j), (1.0711361179394229e-17-9.211650597298553e-18j), (1.0374827662198875e-17+1.6319571355837313e-17j), (1.0374827662198875e-17-1.6319571355837313e-17j), (9.285350985743817e-18+1.6205562553164387e-17j), (9.285350985743817e-18-1.6205562553164387e-17j), (9.01452154082587e-18+7.502106343615196e-18j), (9.01452154082587e-18-7.502106343615196e-18j), (8.941796405754799e-18+4.111796226316211e-18j), (8.941796405754799e-18-4.111796226316211e-18j), (8.705757954598265e-18+2.0006533589522327e-17j), (8.705757954598265e-18-2.0006533589522327e-17j), (8.435694622928362e-18+6.031186046192076e-19j), (8.435694622928362e-18-6.031186046192076e-19j), (7.404422193684899e-18+3.3927353323221116e-17j), (7.404422193684899e-18-3.3927353323221116e-17j), (7.284581904732467e-18+2.6726206278866412e-17j), (7.284581904732467e-18-2.6726206278866412e-17j), (7.131533744100483e-18+5.1652913807024676e-17j), (7.131533744100483e-18-5.1652913807024676e-17j), (6.672431779240734e-18+5.310139595229704e-18j), (6.672431779240734e-18-5.310139595229704e-18j), (6.543118496010377e-18+1.3396923312440597e-18j), (6.543118496010377e-18-1.3396923312440597e-18j), (6.534902168864996e-18+9.708615044790821e-18j), (6.534902168864996e-18-9.708615044790821e-18j), (6.3961932646288675e-18+1.2453916622100655e-17j), (6.3961932646288675e-18-1.2453916622100655e-17j), (6.00019821248487e-18+9.643502812897352e-18j), (6.00019821248487e-18-9.643502812897352e-18j), (5.015249345864634e-18+6.8168657051805515e-18j), (5.015249345864634e-18-6.8168657051805515e-18j), (4.847418008433964e-18+2.948550684000995e-17j), (4.847418008433964e-18-2.948550684000995e-17j), (4.732951186520616e-18+4.514296759445517e-17j), (4.732951186520616e-18-4.514296759445517e-17j), (4.5899306329681765e-18+2.4536003834447096e-17j), (4.5899306329681765e-18-2.4536003834447096e-17j), (4.533367497124241e-18+1.3379617281540666e-17j), (4.533367497124241e-18-1.3379617281540666e-17j), (4.396982057831958e-18+3.18850530393374e-17j), (4.396982057831958e-18-3.18850530393374e-17j), (3.983636581545265e-18+1.5456204001053996e-17j), (3.983636581545265e-18-1.5456204001053996e-17j), (3.7398266841340444e-18+9.989464744337214e-19j), (3.7398266841340444e-18-9.989464744337214e-19j), (3.545001206936797e-18+1.9863911957794344e-17j), (3.545001206936797e-18-1.9863911957794344e-17j), (2.475411678531854e-18+6.094373649689129e-17j), (2.475411678531854e-18-6.094373649689129e-17j), (2.4658953872997007e-18+9.681895095353747e-18j), (2.4658953872997007e-18-9.681895095353747e-18j), (2.283102665368783e-18+6.039786434685123e-18j), (2.283102665368783e-18-6.039786434685123e-18j), (2.211490773060454e-18+1.573773828017063e-17j), (2.211490773060454e-18-1.573773828017063e-17j), (1.5868141196359962e-18+1.918565508276617e-18j), (1.5868141196359962e-18-1.918565508276617e-18j), (1.5573620223763648e-18+8.344177255176614e-18j), (1.5573620223763648e-18-8.344177255176614e-18j), (8.861672256365141e-19+1.9207672617369932e-17j), (8.861672256365141e-19-1.9207672617369932e-17j), (3.6124898345681843e-19+4.180678953756876e-17j), (3.6124898345681843e-19-4.180678953756876e-17j), (1.1515888954541045e-19+7.00247050832339e-18j), (1.1515888954541045e-19-7.00247050832339e-18j), (1.1052975757314999e-19+1.043693882980623e-17j), (1.1052975757314999e-19-1.043693882980623e-17j), (1.064009957371016e-19+1.097182200486427e-17j), (1.064009957371016e-19-1.097182200486427e-17j), (-2.589149349423308e-20+2.5220357547244168e-17j), (-2.589149349423308e-20-2.5220357547244168e-17j), (-7.36831158589835e-19+4.113732492463107e-18j), (-7.36831158589835e-19-4.113732492463107e-18j), (-1.14435472843638e-18+6.895374408904743e-19j), (-1.14435472843638e-18-6.895374408904743e-19j), (-2.4903811087487497e-18+2.9099870192648485e-17j), (-2.4903811087487497e-18-2.9099870192648485e-17j), (-2.59091821757498e-18+3.165684340529606e-17j), (-2.59091821757498e-18-3.165684340529606e-17j), (-2.729936367666199e-18+2.0601588606293094e-17j), (-2.729936367666199e-18-2.0601588606293094e-17j), (-2.8610107712253968e-18+1.1275647502726444e-18j), (-2.8610107712253968e-18-1.1275647502726444e-18j), (-2.9594247018242865e-18+1.7793984014072297e-17j), (-2.9594247018242865e-18-1.7793984014072297e-17j), (-3.0063692134656e-18+8.460422833387074e-18j), (-3.0063692134656e-18-8.460422833387074e-18j), (-4.12023981771628e-18+4.502517628544161e-17j), (-4.12023981771628e-18-4.502517628544161e-17j), (-4.27793799341274e-18+1.8053785274890486e-18j), (-4.27793799341274e-18-1.8053785274890486e-18j), (-4.766452119934316e-18+1.3253966041798416e-17j), (-4.766452119934316e-18-1.3253966041798416e-17j), (-4.8051761946646886e-18+1.5922029671214222e-17j), (-4.8051761946646886e-18-1.5922029671214222e-17j), (-4.94203500789372e-18+6.6204584730276475e-18j), (-4.94203500789372e-18-6.6204584730276475e-18j), (-5.176368224370153e-18+3.708947657894905e-18j), (-5.176368224370153e-18-3.708947657894905e-18j), (-5.3300290947600764e-18+2.2973350563304906e-17j), (-5.3300290947600764e-18-2.2973350563304906e-17j), (-5.861417199749031e-18+9.04862151447497e-18j), (-5.861417199749031e-18-9.04862151447497e-18j), (-6.0076799360954186e-18+2.1246364227728e-17j), (-6.0076799360954186e-18-2.1246364227728e-17j), (-6.208741738746484e-18+3.5513864567849156e-17j), (-6.208741738746484e-18-3.5513864567849156e-17j), (-6.607889478896448e-18+1.389289027898354e-17j), (-6.607889478896448e-18-1.389289027898354e-17j), (-6.702906428210902e-18+5.437510479414918e-17j), (-6.702906428210902e-18-5.437510479414918e-17j), (-7.369576823632334e-18+1.933293084720088e-17j), (-7.369576823632334e-18-1.933293084720088e-17j), (-7.97280361260859e-18+2.2922373886445204e-18j), (-7.97280361260859e-18-2.2922373886445204e-18j), (-8.099181773021391e-18+9.567184223689586e-18j), (-8.099181773021391e-18-9.567184223689586e-18j), (-8.296844778235576e-18+1.8324746460812933e-17j), (-8.296844778235576e-18-1.8324746460812933e-17j), (-8.60759746635795e-18+2.6100894640703822e-17j), (-8.60759746635795e-18-2.6100894640703822e-17j), (-8.955084274761601e-18+8.305392459633116e-18j), (-8.955084274761601e-18-8.305392459633116e-18j), (-9.215646518101085e-18+0j), (-9.586477308602791e-18+6.0125427123769205e-18j), (-9.586477308602791e-18-6.0125427123769205e-18j), (-9.651642965156321e-18+0j), (-9.679414727438182e-18+1.3693290744376878e-17j), (-9.679414727438182e-18-1.3693290744376878e-17j), (-9.889477002103302e-18+3.1951907361929474e-17j), (-9.889477002103302e-18-3.1951907361929474e-17j), (-9.969968955847742e-18+4.6746513744403285e-18j), (-9.969968955847742e-18-4.6746513744403285e-18j), (-1.0821143467330051e-17+1.1070450127779273e-17j), (-1.0821143467330051e-17-1.1070450127779273e-17j), (-1.095457975726785e-17+3.93024794857218e-17j), (-1.095457975726785e-17-3.93024794857218e-17j), (-1.1131957943630642e-17+4.199358717869987e-18j), (-1.1131957943630642e-17-4.199358717869987e-18j), (-1.1158465446927104e-17+1.9745342433457864e-17j), (-1.1158465446927104e-17-1.9745342433457864e-17j), (-1.1672258781670128e-17+6.924319425492844e-18j), (-1.1672258781670128e-17-6.924319425492844e-18j), (-1.181701938881612e-17+8.652505086128377e-17j), (-1.181701938881612e-17-8.652505086128377e-17j), (-1.2967842681656874e-17+2.8054650239369245e-18j), (-1.2967842681656874e-17-2.8054650239369245e-18j), (-1.3409375503462464e-17+0j), (-1.349608154226618e-17+2.3486802539944508e-17j), (-1.349608154226618e-17-2.3486802539944508e-17j), (-1.3574107510398619e-17+1.3656843172050219e-17j), (-1.3574107510398619e-17-1.3656843172050219e-17j), (-1.3767767547343405e-17+9.863183079013696e-18j), (-1.3767767547343405e-17-9.863183079013696e-18j), (-1.4835540547255172e-17+2.61412778624514e-17j), (-1.4835540547255172e-17-2.61412778624514e-17j), (-1.494323230342848e-17+2.861013942204614e-17j), (-1.494323230342848e-17-2.861013942204614e-17j), (-1.518082791713607e-17+3.703580481101366e-17j), (-1.518082791713607e-17-3.703580481101366e-17j), (-1.5739478765079116e-17+3.970259803038529e-18j), (-1.5739478765079116e-17-3.970259803038529e-18j), (-1.5757574428497152e-17+1.3753800518070559e-17j), (-1.5757574428497152e-17-1.3753800518070559e-17j), (-1.5760741394002058e-17+1.2243885360019044e-17j), (-1.5760741394002058e-17-1.2243885360019044e-17j), (-1.5933675965146353e-17+0j), (-1.6672343910720162e-17+6.762867907872768e-18j), (-1.6672343910720162e-17-6.762867907872768e-18j), (-1.7014609313843386e-17+4.755044135950755e-17j), (-1.7014609313843386e-17-4.755044135950755e-17j), (-1.7314967673803786e-17+5.514406339232461e-18j), (-1.7314967673803786e-17-5.514406339232461e-18j), (-1.7450518677131258e-17+1.566878238485391e-17j), (-1.7450518677131258e-17-1.566878238485391e-17j), (-1.773090934602591e-17+9.747405393866722e-18j), (-1.773090934602591e-17-9.747405393866722e-18j), (-1.787265073342728e-17+0j), (-1.8036705373431442e-17+4.419080686536561e-17j), (-1.8036705373431442e-17-4.419080686536561e-17j), (-1.8083508310248868e-17+1.8808345911594892e-17j), (-1.8083508310248868e-17-1.8808345911594892e-17j), (-1.814285451852819e-17+6.001923910133978e-17j), (-1.814285451852819e-17-6.001923910133978e-17j), (-1.9219766694509222e-17+4.623188815797213e-18j), (-1.9219766694509222e-17-4.623188815797213e-18j), (-1.933857347015269e-17+1.4583159842942298e-17j), (-1.933857347015269e-17-1.4583159842942298e-17j), (-1.937056149177014e-17+2.8476516182372986e-18j), (-1.937056149177014e-17-2.8476516182372986e-18j), (-1.9474511687959834e-17+6.26632020909849e-18j), (-1.9474511687959834e-17-6.26632020909849e-18j), (-1.9586143608742905e-17+1.85234238400573e-17j), (-1.9586143608742905e-17-1.85234238400573e-17j), (-2.023396368360552e-17+2.8893471044736276e-17j), (-2.023396368360552e-17-2.8893471044736276e-17j), (-2.0353016791460868e-17+0j), (-2.0479370391025622e-17+3.1892852273340944e-17j), (-2.0479370391025622e-17-3.1892852273340944e-17j), (-2.1597098131095008e-17+1.1529906408495213e-17j), (-2.1597098131095008e-17-1.1529906408495213e-17j), (-2.1930462040275604e-17+1.9414911824067936e-17j), (-2.1930462040275604e-17-1.9414911824067936e-17j), (-2.2003940098370504e-17+2.4057183586985985e-17j), (-2.2003940098370504e-17-2.4057183586985985e-17j), (-2.2230268847722878e-17+4.7817449694785465e-18j), (-2.2230268847722878e-17-4.7817449694785465e-18j), (-2.2702542801481165e-17+0j), (-2.2708001692802753e-17+1.8421672725027624e-17j), (-2.2708001692802753e-17-1.8421672725027624e-17j), (-2.2935926235752975e-17+1.468013926336761e-17j), (-2.2935926235752975e-17-1.468013926336761e-17j), (-2.3550332678472687e-17+1.1827746679640646e-17j), (-2.3550332678472687e-17-1.1827746679640646e-17j), (-2.3704866065347175e-17+2.9365493053927874e-18j), (-2.3704866065347175e-17-2.9365493053927874e-18j), (-2.3904389079630964e-17+2.4280773476723116e-17j), (-2.3904389079630964e-17-2.4280773476723116e-17j), (-2.390781563648595e-17+9.574842157522564e-18j), (-2.390781563648595e-17-9.574842157522564e-18j), (-2.3937020933595343e-17+4.954499234940379e-18j), (-2.3937020933595343e-17-4.954499234940379e-18j), (-2.561910867211214e-17+7.132022001557033e-18j), (-2.561910867211214e-17-7.132022001557033e-18j), (-2.5683988447803237e-17+8.31883674683713e-17j), (-2.5683988447803237e-17-8.31883674683713e-17j), (-2.642514822229127e-17+2.7882367453528514e-17j), (-2.642514822229127e-17-2.7882367453528514e-17j), (-2.6749186479176017e-17+3.0301525722676754e-18j), (-2.6749186479176017e-17-3.0301525722676754e-18j), (-2.738674144056486e-17+0j), (-2.748044643460445e-17+2.1996329506414448e-17j), (-2.748044643460445e-17-2.1996329506414448e-17j), (-2.752307464180039e-17+3.7047775407941944e-17j), (-2.752307464180039e-17-3.7047775407941944e-17j), (-2.790145770691341e-17+5.962846376163953e-18j), (-2.790145770691341e-17-5.962846376163953e-18j), (-2.812980432629899e-17+1.3807254478069043e-17j), (-2.812980432629899e-17-1.3807254478069043e-17j), (-2.883661336646489e-17+1.0049835469750733e-17j), (-2.883661336646489e-17-1.0049835469750733e-17j), (-2.8900235133240474e-17+1.936709024430284e-17j), (-2.8900235133240474e-17-1.936709024430284e-17j), (-2.926417424004886e-17+2.6719857696086382e-18j), (-2.926417424004886e-17-2.6719857696086382e-18j), (-2.9713147919016887e-17+0j), (-2.9846520914486874e-17+1.1691597511433663e-17j), (-2.9846520914486874e-17-1.1691597511433663e-17j), (-2.995562050975903e-17+1.559858051380136e-17j), (-2.995562050975903e-17-1.559858051380136e-17j), (-3.032167842069872e-17+1.25553425973768e-17j), (-3.032167842069872e-17-1.25553425973768e-17j), (-3.058127877859298e-17+2.5758326785675153e-18j), (-3.058127877859298e-17-2.5758326785675153e-18j), (-3.1193206016756926e-17+1.7494725094734788e-17j), (-3.1193206016756926e-17-1.7494725094734788e-17j), (-3.122190235100351e-17+0j), (-3.183280049709657e-17+1.9376404133256e-17j), (-3.183280049709657e-17-1.9376404133256e-17j), (-3.2090567924884616e-17+3.929303011043107e-17j), (-3.2090567924884616e-17-3.929303011043107e-17j), (-3.213021302366187e-17+2.6921356042298018e-17j), (-3.213021302366187e-17-2.6921356042298018e-17j), (-3.248094496701261e-17+6.012463161826097e-18j), (-3.248094496701261e-17-6.012463161826097e-18j), (-3.284141719636236e-17+9.941935091248007e-18j), (-3.284141719636236e-17-9.941935091248007e-18j), (-3.340040916595245e-17+4.995782685691101e-17j), (-3.340040916595245e-17-4.995782685691101e-17j), (-3.3750243195570565e-17+4.296445931846793e-18j), (-3.3750243195570565e-17-4.296445931846793e-18j), (-3.4142462185222256e-17+8.090549238478734e-18j), (-3.4142462185222256e-17-8.090549238478734e-18j), (-3.5101800968859984e-17+1.6799808590594066e-18j), (-3.5101800968859984e-17-1.6799808590594066e-18j), (-3.510845573194756e-17+1.2134898478634303e-17j), (-3.510845573194756e-17-1.2134898478634303e-17j), (-3.575096862492709e-17+2.246319013412633e-17j), (-3.575096862492709e-17-2.246319013412633e-17j), (-3.58180692171515e-17+2.877725935210222e-17j), (-3.58180692171515e-17-2.877725935210222e-17j), (-3.6103154645534143e-17+2.1399958889163185e-17j), (-3.6103154645534143e-17-2.1399958889163185e-17j), (-3.6464197528691156e-17+5.374742490616808e-18j), (-3.6464197528691156e-17-5.374742490616808e-18j), (-3.7016615124269876e-17+4.3201175204789896e-17j), (-3.7016615124269876e-17-4.3201175204789896e-17j), (-3.742294892665654e-17+0j), (-3.751401236447206e-17+5.246178417090974e-18j), (-3.751401236447206e-17-5.246178417090974e-18j), (-3.769372800611109e-17+1.166821893794494e-17j), (-3.769372800611109e-17-1.166821893794494e-17j), (-3.771423244092512e-17+2.440855751964334e-17j), (-3.771423244092512e-17-2.440855751964334e-17j), (-3.834016036281682e-17+1.881791100674467e-17j), (-3.834016036281682e-17-1.881791100674467e-17j), (-3.8754935937646685e-17+1.2447487056984067e-17j), (-3.8754935937646685e-17-1.2447487056984067e-17j), (-3.9426871105466295e-17+0j), (-3.99174247404883e-17+3.3895311776841063e-17j), (-3.99174247404883e-17-3.3895311776841063e-17j), (-3.9951176448235734e-17+1.5737258978794966e-17j), (-3.9951176448235734e-17-1.5737258978794966e-17j), (-4.034248048778693e-17+8.280083160997072e-18j), (-4.034248048778693e-17-8.280083160997072e-18j), (-4.1181065342226624e-17+2.30197148135028e-17j), (-4.1181065342226624e-17-2.30197148135028e-17j), (-4.119002069331323e-17+2.3505515902713847e-18j), (-4.119002069331323e-17-2.3505515902713847e-18j), (-4.1430047652037e-17+1.1645037355546682e-17j), (-4.1430047652037e-17-1.1645037355546682e-17j), (-4.153326258332732e-17+1.5044955630942663e-17j), (-4.153326258332732e-17-1.5044955630942663e-17j), (-4.1838980251045656e-17+2.0189010466003446e-17j), (-4.1838980251045656e-17-2.0189010466003446e-17j), (-4.19145535416108e-17+7.961977069941137e-18j), (-4.19145535416108e-17-7.961977069941137e-18j), (-4.2131613446045095e-17+2.6759573617547015e-18j), (-4.2131613446045095e-17-2.6759573617547015e-18j), (-4.2810325985552176e-17+3.772198666034883e-17j), (-4.2810325985552176e-17-3.772198666034883e-17j), (-4.287976347019248e-17+1.0731532016305e-17j), (-4.287976347019248e-17-1.0731532016305e-17j), (-4.316437511027792e-17+7.879761339828623e-19j), (-4.316437511027792e-17-7.879761339828623e-19j), (-4.3180901912383974e-17+1.4867099494119368e-17j), (-4.3180901912383974e-17-1.4867099494119368e-17j), (-4.3943283212229527e-17+6.360326902813805e-18j), (-4.3943283212229527e-17-6.360326902813805e-18j), (-4.478246254729887e-17+5.834986914651319e-17j), (-4.478246254729887e-17-5.834986914651319e-17j), (-4.488741857357949e-17+7.197034027722029e-17j), (-4.488741857357949e-17-7.197034027722029e-17j), (-4.48915089382025e-17+2.2558027429830944e-17j), (-4.48915089382025e-17-2.2558027429830944e-17j), (-4.538693702884327e-17+1.7390425404946478e-17j), (-4.538693702884327e-17-1.7390425404946478e-17j), (-4.587696868872478e-17+3.316032847851516e-17j), (-4.587696868872478e-17-3.316032847851516e-17j), (-4.614188891885265e-17+0j), (-4.630548005889203e-17+4.76107492168404e-18j), (-4.630548005889203e-17-4.76107492168404e-18j), (-4.6642702440563434e-17+8.825862573265912e-18j), (-4.6642702440563434e-17-8.825862573265912e-18j), (-4.6754026717205075e-17+4.4049924312150186e-17j), (-4.6754026717205075e-17-4.4049924312150186e-17j), (-4.711224843611868e-17+2.954924190603796e-17j), (-4.711224843611868e-17-2.954924190603796e-17j), (-4.7921086357773455e-17+1.6825130271831465e-17j), (-4.7921086357773455e-17-1.6825130271831465e-17j), (-4.8111255617257376e-17+1.0262260665025233e-17j), (-4.8111255617257376e-17-1.0262260665025233e-17j), (-4.826882270875491e-17+1.3932066303960505e-17j), (-4.826882270875491e-17-1.3932066303960505e-17j), (-4.849096114976488e-17+4.838473570871938e-17j), (-4.849096114976488e-17-4.838473570871938e-17j), (-4.8793607823529265e-17+2.323901073711191e-18j), (-4.8793607823529265e-17-2.323901073711191e-18j), (-4.9053179938543666e-17+1.9536473761810363e-17j), (-4.9053179938543666e-17-1.9536473761810363e-17j), (-4.915312870312191e-17+4.06028218818752e-18j), (-4.915312870312191e-17-4.06028218818752e-18j), (-5.043563953636216e-17+1.057289159738311e-17j), (-5.043563953636216e-17-1.057289159738311e-17j), (-5.061953921573522e-17+2.7208282736530988e-17j), (-5.061953921573522e-17-2.7208282736530988e-17j), (-5.1151395141193355e-17+7.700150197430642e-18j), (-5.1151395141193355e-17-7.700150197430642e-18j), (-5.128903180064071e-17+3.364504619541719e-17j), (-5.128903180064071e-17-3.364504619541719e-17j), (-5.1875766868383123e-17+8.62219914188374e-18j), (-5.1875766868383123e-17-8.62219914188374e-18j), (-5.189506033317868e-17+2.3113206805281678e-17j), (-5.189506033317868e-17-2.3113206805281678e-17j), (-5.194653242080248e-17+3.3558931513403546e-18j), (-5.194653242080248e-17-3.3558931513403546e-18j), (-5.195188344745601e-17+1.5052314251060438e-17j), (-5.195188344745601e-17-1.5052314251060438e-17j), (-5.303422769388766e-17+1.2680842327549701e-17j), (-5.303422769388766e-17-1.2680842327549701e-17j), (-5.335909635129406e-17+1.0499987101351778e-18j), (-5.335909635129406e-17-1.0499987101351778e-18j), (-5.374800536658814e-17+4.866581935143764e-18j), (-5.374800536658814e-17-4.866581935143764e-18j), (-5.4209865249423486e-17+2.849313567599183e-17j), (-5.4209865249423486e-17-2.849313567599183e-17j), (-5.445953203862049e-17+1.5795543853330875e-17j), (-5.445953203862049e-17-1.5795543853330875e-17j), (-5.539819999546959e-17+1.9141323334355272e-17j), (-5.539819999546959e-17-1.9141323334355272e-17j), (-5.566431049700428e-17+3.893612712929308e-17j), (-5.566431049700428e-17-3.893612712929308e-17j), (-5.592284170123255e-17+2.2157170477717124e-17j), (-5.592284170123255e-17-2.2157170477717124e-17j), (-5.595982797523293e-17+8.504256701381183e-18j), (-5.595982797523293e-17-8.504256701381183e-18j), (-5.651287015075352e-17+3.0438692612078708e-18j), (-5.651287015075352e-17-3.0438692612078708e-18j), (-5.658511149261961e-17+1.2329894738316908e-17j), (-5.658511149261961e-17-1.2329894738316908e-17j), (-5.67937884509473e-17+5.625296300574896e-18j), (-5.67937884509473e-17-5.625296300574896e-18j), (-5.709011991918282e-17+0j), (-5.781084502430086e-17+9.848551181032789e-18j), (-5.781084502430086e-17-9.848551181032789e-18j), (-5.793525252227079e-17+1.4823439826206464e-17j), (-5.793525252227079e-17-1.4823439826206464e-17j), (-5.905201215997768e-17+3.207224920471883e-17j), (-5.905201215997768e-17-3.207224920471883e-17j), (-5.907667546256117e-17+2.377587410510919e-18j), (-5.907667546256117e-17-2.377587410510919e-18j), (-5.936614661225308e-17+1.808565154077314e-17j), (-5.936614661225308e-17-1.808565154077314e-17j), (-6.002017399101238e-17+5.680346098142774e-18j), (-6.002017399101238e-17-5.680346098142774e-18j), (-6.025470323440178e-17+1.4984972277599462e-17j), (-6.025470323440178e-17-1.4984972277599462e-17j), (-6.03005869971771e-17+4.2017498977943057e-17j), (-6.03005869971771e-17-4.2017498977943057e-17j), (-6.139408839155042e-17+1.182352843619035e-17j), (-6.139408839155042e-17-1.182352843619035e-17j), (-6.210575451424302e-17+5.398445318935484e-19j), (-6.210575451424302e-17-5.398445318935484e-19j), (-6.213825952201981e-17+1.5995619717601705e-18j), (-6.213825952201981e-17-1.5995619717601705e-18j), (-6.266219150344373e-17+3.3675853353353674e-17j), (-6.266219150344373e-17-3.3675853353353674e-17j), (-6.368142308896297e-17+3.7665553586740616e-17j), (-6.368142308896297e-17-3.7665553586740616e-17j), (-6.390356461787324e-17+5.5725167126007825e-18j), (-6.390356461787324e-17-5.5725167126007825e-18j), (-6.445075600565328e-17+5.540706079956722e-17j), (-6.445075600565328e-17-5.540706079956722e-17j), (-6.451042436917023e-17+2.195080194469535e-17j), (-6.451042436917023e-17-2.195080194469535e-17j), (-6.459674820631722e-17+9.758148432729402e-18j), (-6.459674820631722e-17-9.758148432729402e-18j), (-6.491919775672946e-17+1.6712969454403657e-17j), (-6.491919775672946e-17-1.6712969454403657e-17j), (-6.547683035955786e-17+3.592319825458029e-18j), (-6.547683035955786e-17-3.592319825458029e-18j), (-6.563832426188956e-17+2.8296578049482357e-17j), (-6.563832426188956e-17-2.8296578049482357e-17j), (-6.609348604836096e-17+1.397657806857174e-17j), (-6.609348604836096e-17-1.397657806857174e-17j), (-6.65570992661309e-17+9.920372695141126e-18j), (-6.65570992661309e-17-9.920372695141126e-18j), (-6.701135231967794e-17+2.1016147834921844e-17j), (-6.701135231967794e-17-2.1016147834921844e-17j), (-6.715493910266585e-17+1.7567819504410985e-17j), (-6.715493910266585e-17-1.7567819504410985e-17j), (-6.73626577042199e-17+5.548801799262299e-18j), (-6.73626577042199e-17-5.548801799262299e-18j), (-6.83428903377898e-17+9.071734492814468e-18j), (-6.83428903377898e-17-9.071734492814468e-18j), (-6.90580711642972e-17+9.052149783394582e-19j), (-6.90580711642972e-17-9.052149783394582e-19j), (-6.990563528403141e-17+2.5299862871907595e-17j), (-6.990563528403141e-17-2.5299862871907595e-17j), (-7.078089594657741e-17+1.2213669229525184e-17j), (-7.078089594657741e-17-1.2213669229525184e-17j), (-7.092320809549609e-17+9.478993750137913e-18j), (-7.092320809549609e-17-9.478993750137913e-18j), (-7.123630172845363e-17+1.992935793332856e-17j), (-7.123630172845363e-17-1.992935793332856e-17j), (-7.13299627724885e-17+5.910617711798834e-17j), (-7.13299627724885e-17-5.910617711798834e-17j), (-7.153165141854988e-17+1.5439145103598893e-16j), (-7.153165141854988e-17-1.5439145103598893e-16j), (-7.163611433643013e-17+3.616373040926241e-17j), (-7.163611433643013e-17-3.616373040926241e-17j), (-7.178726688570958e-17+1.1740526449024516e-18j), (-7.178726688570958e-17-1.1740526449024516e-18j), (-7.188418500617509e-17+1.0836760223830877e-17j), (-7.188418500617509e-17-1.0836760223830877e-17j), (-7.215036971096144e-17+6.460003367938896e-18j), (-7.215036971096144e-17-6.460003367938896e-18j), (-7.231369445759925e-17+0j), (-7.320560393170604e-17+4.64902231959064e-18j), (-7.320560393170604e-17-4.64902231959064e-18j), (-7.333645225549695e-17+2.3791982669502972e-17j), (-7.333645225549695e-17-2.3791982669502972e-17j), (-7.480753320660912e-17+2.1632081756780054e-17j), (-7.480753320660912e-17-2.1632081756780054e-17j), (-7.494816390332354e-17+0j), (-7.526117248258985e-17+5.484773888629897e-18j), (-7.526117248258985e-17-5.484773888629897e-18j), (-7.622662134291491e-17+8.16557032887617e-18j), (-7.622662134291491e-17-8.16557032887617e-18j), (-7.647712310054815e-17+0j), (-7.682739252778598e-17+4.0247275266585496e-17j), (-7.682739252778598e-17-4.0247275266585496e-17j), (-7.771936404773992e-17+0j), (-7.778417199209552e-17+2.8384331066224586e-17j), (-7.778417199209552e-17-2.8384331066224586e-17j), (-7.782938538751959e-17+1.2283273646586578e-17j), (-7.782938538751959e-17-1.2283273646586578e-17j), (-7.785822553655026e-17+8.962678501493762e-17j), (-7.785822553655026e-17-8.962678501493762e-17j), (-7.814813667981407e-17+1.5593734935507164e-17j), (-7.814813667981407e-17-1.5593734935507164e-17j), (-7.849139722710448e-17+1.937084030591742e-17j), (-7.849139722710448e-17-1.937084030591742e-17j), (-7.875869184675185e-17+3.456963929328304e-17j), (-7.875869184675185e-17-3.456963929328304e-17j), (-7.905137348042128e-17+2.1579838164199927e-17j), (-7.905137348042128e-17-2.1579838164199927e-17j), (-7.974008246520054e-17+0j), (-7.993435867260004e-17+7.432807445188325e-18j), (-7.993435867260004e-17-7.432807445188325e-18j), (-7.996622060800457e-17+1.2082528699461726e-17j), (-7.996622060800457e-17-1.2082528699461726e-17j), (-8.103695066447167e-17+5.2386239580406416e-18j), (-8.103695066447167e-17-5.2386239580406416e-18j), (-8.166821827280936e-17+4.958845121059268e-17j), (-8.166821827280936e-17-4.958845121059268e-17j), (-8.171240322308621e-17+1.2892810758738283e-17j), (-8.171240322308621e-17-1.2892810758738283e-17j), (-8.190911031701653e-17+0j), (-8.315787977371923e-17+1.72672656957513e-17j), (-8.315787977371923e-17-1.72672656957513e-17j), (-8.317287317846604e-17+1.115004327555063e-17j), (-8.317287317846604e-17-1.115004327555063e-17j), (-8.344199743774396e-17+3.981043480252681e-17j), (-8.344199743774396e-17-3.981043480252681e-17j), (-8.382750230245771e-17+2.799695457037207e-17j), (-8.382750230245771e-17-2.799695457037207e-17j), (-8.443374519993957e-17+1.166597835268279e-17j), (-8.443374519993957e-17-1.166597835268279e-17j), (-8.450153169527306e-17+5.7664587714379574e-18j), (-8.450153169527306e-17-5.7664587714379574e-18j), (-8.55288690762867e-17+8.244852370902989e-18j), (-8.55288690762867e-17-8.244852370902989e-18j), (-8.569148986640166e-17+3.294104873760295e-18j), (-8.569148986640166e-17-3.294104873760295e-18j), (-8.595380815677246e-17+1.6279296205871352e-17j), (-8.595380815677246e-17-1.6279296205871352e-17j), (-8.638771208872326e-17+2.0023256763802508e-17j), (-8.638771208872326e-17-2.0023256763802508e-17j), (-8.762825692240759e-17+2.1994014252282908e-17j), (-8.762825692240759e-17-2.1994014252282908e-17j), (-8.777259749747751e-17+1.3160012306232145e-17j), (-8.777259749747751e-17-1.3160012306232145e-17j), (-8.779516380492761e-17+2.2731082774402917e-18j), (-8.779516380492761e-17-2.2731082774402917e-18j), (-8.936050245518136e-17+2.6502732361450843e-17j), (-8.936050245518136e-17-2.6502732361450843e-17j), (-8.966311956730025e-17+5.711045245158749e-17j), (-8.966311956730025e-17-5.711045245158749e-17j), (-8.967276247580177e-17+1.0374060000404131e-17j), (-8.967276247580177e-17-1.0374060000404131e-17j), (-8.9798224829264e-17+7.086515515668039e-18j), (-8.9798224829264e-17-7.086515515668039e-18j), (-8.985137702574832e-17+2.757908127887145e-18j), (-8.985137702574832e-17-2.757908127887145e-18j), (-9.128228429390269e-17+1.4362619116360567e-17j), (-9.128228429390269e-17-1.4362619116360567e-17j), (-9.266727949972712e-17+1.258351213482357e-18j), (-9.266727949972712e-17-1.258351213482357e-18j), (-9.378226456454345e-17+3.0888087051564173e-17j), (-9.378226456454345e-17-3.0888087051564173e-17j), (-9.406505961064199e-17+7.49538852114706e-18j), (-9.406505961064199e-17-7.49538852114706e-18j), (-9.415380397412278e-17+1.4859854794813982e-17j), (-9.415380397412278e-17-1.4859854794813982e-17j), (-9.431113881565733e-17+1.5724177270976398e-17j), (-9.431113881565733e-17-1.5724177270976398e-17j), (-9.433715657239256e-17+1.0903789153727907e-17j), (-9.433715657239256e-17-1.0903789153727907e-17j), (-9.47377262329138e-17+2.4786982595213902e-17j), (-9.47377262329138e-17-2.4786982595213902e-17j), (-9.49882645576962e-17+7.628253036822228e-17j), (-9.49882645576962e-17-7.628253036822228e-17j), (-9.551463344056183e-17+4.962648676153274e-17j), (-9.551463344056183e-17-4.962648676153274e-17j), (-9.652338052821972e-17+4.918978542985724e-18j), (-9.652338052821972e-17-4.918978542985724e-18j), (-9.683561205140349e-17+1.795574521840842e-17j), (-9.683561205140349e-17-1.795574521840842e-17j), (-9.718342530156691e-17+4.5728718786433315e-17j), (-9.718342530156691e-17-4.5728718786433315e-17j), (-9.776116931700379e-17+3.508292739980484e-17j), (-9.776116931700379e-17-3.508292739980484e-17j), (-9.778183938453163e-17+0j), (-9.828610622333803e-17+2.2563155571925884e-18j), (-9.828610622333803e-17-2.2563155571925884e-18j), (-9.838566572192898e-17+5.575339797628377e-18j), (-9.838566572192898e-17-5.575339797628377e-18j), (-9.903109677019474e-17+1.8049670299016096e-17j), (-9.903109677019474e-17-1.8049670299016096e-17j), (-1.0023848593503538e-16+1.356844682387235e-17j), (-1.0023848593503538e-16-1.356844682387235e-17j), (-1.0038929768343009e-16+1.049625501403623e-17j), (-1.0038929768343009e-16-1.049625501403623e-17j), (-1.0066804355895945e-16+2.51110596733394e-18j), (-1.0066804355895945e-16-2.51110596733394e-18j), (-1.0117657629107957e-16+7.113772906585962e-17j), (-1.0117657629107957e-16-7.113772906585962e-17j), (-1.0279882506410051e-16+1.7420127165567664e-17j), (-1.0279882506410051e-16-1.7420127165567664e-17j), (-1.0341232131921648e-16+8.036834027201621e-18j), (-1.0341232131921648e-16-8.036834027201621e-18j), (-1.0426526561134619e-16+2.178465985228627e-17j), (-1.0426526561134619e-16-2.178465985228627e-17j), (-1.0568517835634233e-16+1.2870443868892217e-18j), (-1.0568517835634233e-16-1.2870443868892217e-18j), (-1.0648589443394332e-16+3.2372145263968515e-18j), (-1.0648589443394332e-16-3.2372145263968515e-18j), (-1.0714207864708217e-16+7.498334494279238e-18j), (-1.0714207864708217e-16-7.498334494279238e-18j), (-1.0775830242868918e-16+2.112876705762382e-17j), (-1.0775830242868918e-16-2.112876705762382e-17j), (-1.078783537853995e-16+1.9320391193631426e-17j), (-1.078783537853995e-16-1.9320391193631426e-17j), (-1.0878809508342595e-16+1.4459950909621993e-17j), (-1.0878809508342595e-16-1.4459950909621993e-17j), (-1.0881017439468281e-16+1.0973070065807012e-17j), (-1.0881017439468281e-16-1.0973070065807012e-17j), (-1.0920824611750456e-16+7.24738095121371e-18j), (-1.0920824611750456e-16-7.24738095121371e-18j), (-1.0949236001976487e-16+9.381561345555142e-18j), (-1.0949236001976487e-16-9.381561345555142e-18j), (-1.0981502626973416e-16+3.766684966938644e-17j), (-1.0981502626973416e-16-3.766684966938644e-17j), (-1.1053751155250035e-16+6.3844763839014e-18j), (-1.1053751155250035e-16-6.3844763839014e-18j), (-1.1228628253227716e-16+2.73255243494888e-17j), (-1.1228628253227716e-16-2.73255243494888e-17j), (-1.128855882039944e-16+5.487545100790318e-18j), (-1.128855882039944e-16-5.487545100790318e-18j), (-1.129931071497689e-16+3.9541426938642216e-17j), (-1.129931071497689e-16-3.9541426938642216e-17j), (-1.1437239583399924e-16+1.1228827758479666e-17j), (-1.1437239583399924e-16-1.1228827758479666e-17j), (-1.15728908505183e-16+1.5298685707436972e-17j), (-1.15728908505183e-16-1.5298685707436972e-17j), (-1.1622742778099591e-16+0j), (-1.1695603539960504e-16+8.017826216673532e-18j), (-1.1695603539960504e-16-8.017826216673532e-18j), (-1.1739316368375799e-16+3.094366821494269e-17j), (-1.1739316368375799e-16-3.094366821494269e-17j), (-1.1749843901392093e-16+1.7710611527492935e-17j), (-1.1749843901392093e-16-1.7710611527492935e-17j), (-1.1796899136988542e-16+2.5305366627145645e-19j), (-1.1796899136988542e-16-2.5305366627145645e-19j), (-1.1829861460029796e-16+1.6114134488903635e-17j), (-1.1829861460029796e-16-1.6114134488903635e-17j), (-1.1912091437401477e-16+4.479655846823309e-17j), (-1.1912091437401477e-16-4.479655846823309e-17j), (-1.203716301276716e-16+9.152109661367154e-18j), (-1.203716301276716e-16-9.152109661367154e-18j), (-1.206335870555828e-16+1.3545597728424536e-17j), (-1.206335870555828e-16-1.3545597728424536e-17j), (-1.2080005475845296e-16+2.4037744793027052e-17j), (-1.2080005475845296e-16-2.4037744793027052e-17j), (-1.2186414585744925e-16+3.1397436953182656e-17j), (-1.2186414585744925e-16-3.1397436953182656e-17j), (-1.2192112456313838e-16+7.256605792375703e-17j), (-1.2192112456313838e-16-7.256605792375703e-17j), (-1.2197922015782026e-16+2.741607295319223e-18j), (-1.2197922015782026e-16-2.741607295319223e-18j), (-1.2509087619270862e-16+1.5584710917599861e-18j), (-1.2509087619270862e-16-1.5584710917599861e-18j), (-1.2515070144051774e-16+1.7771444975762722e-17j), (-1.2515070144051774e-16-1.7771444975762722e-17j), (-1.2661826134876488e-16+1.310040380087776e-17j), (-1.2661826134876488e-16-1.310040380087776e-17j), (-1.271046597593395e-16+3.986841757695408e-18j), (-1.271046597593395e-16-3.986841757695408e-18j), (-1.2713410728256588e-16+2.7733168989705117e-17j), (-1.2713410728256588e-16-2.7733168989705117e-17j), (-1.2841737713044897e-16+6.2689404360304904e-18j), (-1.2841737713044897e-16-6.2689404360304904e-18j), (-1.288167677893771e-16+5.093364382122164e-17j), (-1.288167677893771e-16-5.093364382122164e-17j), (-1.3112194315817076e-16+4.208882791155939e-18j), (-1.3112194315817076e-16-4.208882791155939e-18j), (-1.3173120347280005e-16+1.600051828915574e-17j), (-1.3173120347280005e-16-1.600051828915574e-17j), (-1.321576256568209e-16+1.006151287758491e-17j), (-1.321576256568209e-16-1.006151287758491e-17j), (-1.3252721895241137e-16+1.9735172248209822e-17j), (-1.3252721895241137e-16-1.9735172248209822e-17j), (-1.329560474455361e-16+3.0086062300966024e-17j), (-1.329560474455361e-16-3.0086062300966024e-17j), (-1.3374124542197696e-16+0j), (-1.3516814212776797e-16+0j), (-1.353773238341526e-16+4.824000934449342e-18j), (-1.353773238341526e-16-4.824000934449342e-18j), (-1.3549641608283602e-16+2.7849559374531353e-17j), (-1.3549641608283602e-16-2.7849559374531353e-17j), (-1.4092420677000354e-16+1.0477092047235954e-17j), (-1.4092420677000354e-16-1.0477092047235954e-17j), (-1.4176520486600733e-16+3.6716933509713997e-17j), (-1.4176520486600733e-16-3.6716933509713997e-17j), (-1.4201350708954847e-16+2.753993571250059e-17j), (-1.4201350708954847e-16-2.753993571250059e-17j), (-1.423862872872425e-16+1.619917871357957e-18j), (-1.423862872872425e-16-1.619917871357957e-18j), (-1.4304522027657098e-16+9.06328792942482e-18j), (-1.4304522027657098e-16-9.06328792942482e-18j), (-1.4370444610189702e-16+1.4415031531083053e-17j), (-1.4370444610189702e-16-1.4415031531083053e-17j), (-1.448970405936477e-16+1.8438866907337665e-17j), (-1.448970405936477e-16-1.8438866907337665e-17j), (-1.458389050851559e-16+7.032306522035595e-17j), (-1.458389050851559e-16-7.032306522035595e-17j), (-1.4886383351087249e-16+4.505028013366145e-17j), (-1.4886383351087249e-16-4.505028013366145e-17j), (-1.493626988017725e-16+1.8672075054249363e-17j), (-1.493626988017725e-16-1.8672075054249363e-17j), (-1.4947690086537825e-16+0j), (-1.5045240036642093e-16+4.040880480902563e-18j), (-1.5045240036642093e-16-4.040880480902563e-18j), (-1.5077167110923177e-16+9.897297336397207e-18j), (-1.5077167110923177e-16-9.897297336397207e-18j), (-1.5236919672667647e-16+3.5317061934087074e-17j), (-1.5236919672667647e-16-3.5317061934087074e-17j), (-1.5241919942594557e-16+7.990965812934515e-18j), (-1.5241919942594557e-16-7.990965812934515e-18j), (-1.55398516967569e-16+1.2219751202429643e-17j), (-1.55398516967569e-16-1.2219751202429643e-17j), (-1.566358874823048e-16+1.9018959502046873e-17j), (-1.566358874823048e-16-1.9018959502046873e-17j), (-1.5710436048358175e-16+2.5951907086141546e-17j), (-1.5710436048358175e-16-2.5951907086141546e-17j), (-1.5958130868422397e-16+4.4277179430174526e-18j), (-1.5958130868422397e-16-4.4277179430174526e-18j), (-1.6184351485084922e-16+1.4753966559186125e-17j), (-1.6184351485084922e-16-1.4753966559186125e-17j), (-1.6288570260819415e-16+0j), (-1.6755731707873713e-16+2.665249824921285e-17j), (-1.6755731707873713e-16-2.665249824921285e-17j), (-1.6856510757097841e-16+6.043619061147008e-18j), (-1.6856510757097841e-16-6.043619061147008e-18j), (-1.7029034914022416e-16+1.6578201827786268e-17j), (-1.7029034914022416e-16-1.6578201827786268e-17j), (-1.7491300219544264e-16+0j), (-1.7797135538772737e-16+1.3913221185933555e-17j), (-1.7797135538772737e-16-1.3913221185933555e-17j), (-1.826296020235852e-16+6.09640814164376e-17j), (-1.826296020235852e-16-6.09640814164376e-17j), (-1.8471477434913476e-16+4.185638340862469e-17j), (-1.8471477434913476e-16-4.185638340862469e-17j), (-1.8735464374090165e-16+1.9050641906072363e-17j), (-1.8735464374090165e-16-1.9050641906072363e-17j), (-1.9040471776414624e-16+6.666948614508873e-18j), (-1.9040471776414624e-16-6.666948614508873e-18j), (-1.9792854338383792e-16+4.2790313410904405e-17j), (-1.9792854338383792e-16-4.2790313410904405e-17j), (-1.9912616780483668e-16+1.5364107301754286e-17j), (-1.9912616780483668e-16-1.5364107301754286e-17j), (-2.0011561389767273e-16+0j), (-2.0438454250789662e-16+2.6018316553386345e-17j), (-2.0438454250789662e-16-2.6018316553386345e-17j), (-2.1149035868614913e-16+0j), (-2.1871735410372088e-16+2.948623195398489e-17j), (-2.1871735410372088e-16-2.948623195398489e-17j), (-2.264765046945674e-16+5.320823337880815e-18j), (-2.264765046945674e-16-5.320823337880815e-18j), (-2.5637192344618907e-16+8.221959149435277e-18j), (-2.5637192344618907e-16-8.221959149435277e-18j), (-2.6108292707712294e-16+7.495757013550188e-17j), (-2.6108292707712294e-16-7.495757013550188e-17j), (-2.6463625884890233e-16+4.579604769050146e-17j), (-2.6463625884890233e-16-4.579604769050146e-17j), (-2.836342063008054e-16+0j), (-3.1485248134060913e-16+2.0820910356240106e-18j), (-3.1485248134060913e-16-2.0820910356240106e-18j), (-3.35171205312482e-16+1.7265607170467317e-16j), (-3.35171205312482e-16-1.7265607170467317e-16j), (-3.801400324528769e-16+3.563774868508473e-18j), (-3.801400324528769e-16-3.563774868508473e-18j), (-3.8318748346816645e-16+3.6713189329928e-17j), (-3.8318748346816645e-16-3.6713189329928e-17j), (-5.160718283124524e-16+0j)] -------------------------------------------------- Cumulative variance captured as we traverse each component [ 4.261125 +0.00000000e+00j 8.15210532+0.00000000e+00j 11.44337764+0.00000000e+00j ... 100. +3.67131893e-17j 100. +0.00000000e+00j 100. +0.00000000e+00j]
cum_var_exp
array([ 4.261125 +0.00000000e+00j, 8.15210532+0.00000000e+00j,
11.44337764+0.00000000e+00j, ..., 100. +3.67131893e-17j,
100. +0.00000000e+00j, 100. +0.00000000e+00j])
len(cum_var_exp[cum_var_exp<96])
105
105 elements capture about 95% of the variance
cv_scores=pd.DataFrame(index=['mean','std'])
scores = pd.DataFrame(index=['train','test','CV'])
def save_scores(name,cv,test,train):
global cv_scores
global scores
cv_scores.loc['mean',name] = cv[0]
cv_scores.loc['std',name] = cv[1]
scores.loc['train',name] = train
scores.loc['test',name] = test
scores.loc['CV',name] = cv[0]
return
X_train, X_test, y_train, y_test = train_test_split(signal_X, Y, test_size=0.25, stratify=Y, random_state=RS)
Pca = PCA(n_components=105, random_state=RS, whiten=True) # to capture most important features with 95% variance
Smot = SMOTE(random_state=RS) # to handle imbalanced classes
Trans = QuantileTransformer(output_distribution='normal', random_state=RS) # Transformation to reduce outliers
MinMax = MinMaxScaler() # Scaling for pca or classifier
Scaler = RobustScaler() # Scaling for pca or classifier
#Objective: To show the standard scores required and also save them in a dataframe
def give_scores(name,model,X_train, X_test, y_train, y_test):
cvs = cross_val_score(model,pd.concat([X_train,X_test]).sort_index(),
pd.concat([y_train,y_test]).sort_index(),scoring='f1',cv=5)
cvs = cross_val_score(model,X_train,y_train,scoring='f1',cv=5)
print('CV score: ', cvs.mean().round(4))
print('\nTrain Accuracy scores: ',round(accuracy_score(y_train, model.predict(X_train)),4))
print('\nTest Accuracy scores: ',round(accuracy_score(y_test, model.predict(X_test)),4))
print('\nClassification reports of train and test set, respectively '+name)
train_report = pd.DataFrame(classification_report(y_train, model.predict(X_train),output_dict=True)).T.round(3)
test_report = pd.DataFrame(classification_report(y_test, model.predict(X_test),output_dict=True)).T.round(3)
display_sbs(train_report,test_report)
plot_confusion_matrix(model, X_test, y_test,cmap=plt.cm.Blues)
#display_labels=class_names,
save_scores(name,
[cvs.mean().round(4), cvs.std().round(4)],
test_report.loc['1','f1-score'],
train_report.loc['1','f1-score'])
return
%%time
svc = SVC(random_state=RS)
SVM_pipe1 = Pipeline([('trans',Trans),('scaler',Scaler),('pca',Pca),('smt', Smot), ('svc', svc)])
params = {'gamma': [0.01, 0.001, 0.0001],
'C': [1.0, 10, 100],
'kernel': ['rbf', 'poly']}
num_folds = 5
seed = 7
stratified_kfold = StratifiedKFold(n_splits = num_folds, random_state = RS, shuffle=True)
new_params = {'svc__'+ key: params[key] for key in params}
grid_imba = GridSearchCV(SVM_pipe1, param_grid=new_params, cv=stratified_kfold, scoring='f1',
return_train_score=True)
grid_imba.fit(X_train, y_train);
give_scores('svc-pca',grid_imba,X_train, X_test, y_train, y_test)
CV score: 0.1495 Train Accuracy scores: 0.8604 Test Accuracy scores: 0.8265 Classification reports of train and test set, respectively svc-pca
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.980 | 0.868 | 0.921 | 1097.00 |
| 1 | 0.289 | 0.756 | 0.418 | 78.00 |
| accuracy | 0.860 | 0.860 | 0.860 | 0.86 |
| macro avg | 0.635 | 0.812 | 0.670 | 1175.00 |
| weighted avg | 0.935 | 0.860 | 0.887 | 1175.00 |
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.946 | 0.863 | 0.903 | 366.000 |
| 1 | 0.138 | 0.308 | 0.190 | 26.000 |
| accuracy | 0.827 | 0.827 | 0.827 | 0.827 |
| macro avg | 0.542 | 0.586 | 0.547 | 392.000 |
| weighted avg | 0.893 | 0.827 | 0.856 | 392.000 |
Wall time: 10min 9s
%%time
svc = SVC(random_state=RS)
SVM_pipe2 = Pipeline([('trans',Trans),('minmax',MinMax),('smt', Smot), ('svc', svc)])
params = {'gamma': [0.01, 0.001, 0.0001],
'C': [1.0, 10, 100],
'kernel': ['rbf', 'poly']}
num_folds = 5
seed = 7
stratified_kfold = StratifiedKFold(n_splits = num_folds, random_state = RS, shuffle=True)
new_params = {'svc__'+ key: params[key] for key in params}
grid_imba1 = GridSearchCV(SVM_pipe2, param_grid=new_params, cv=stratified_kfold, scoring='f1',
return_train_score=True)
grid_imba1.fit(X_train, y_train);
give_scores('svc',grid_imba1,X_train, X_test, y_train, y_test)
CV score: 0.1548 Train Accuracy scores: 0.8706 Test Accuracy scores: 0.8214 Classification reports of train and test set, respectively svc
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.999 | 0.862 | 0.926 | 1097.000 |
| 1 | 0.338 | 0.987 | 0.503 | 78.000 |
| accuracy | 0.871 | 0.871 | 0.871 | 0.871 |
| macro avg | 0.668 | 0.925 | 0.714 | 1175.000 |
| weighted avg | 0.955 | 0.871 | 0.898 | 1175.000 |
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.965 | 0.839 | 0.898 | 366.000 |
| 1 | 0.203 | 0.577 | 0.300 | 26.000 |
| accuracy | 0.821 | 0.821 | 0.821 | 0.821 |
| macro avg | 0.584 | 0.708 | 0.599 | 392.000 |
| weighted avg | 0.915 | 0.821 | 0.858 | 392.000 |
Wall time: 10min 7s
%%time
from sklearn.model_selection import RandomizedSearchCV
from scipy import stats
xgb_model = XGBClassifier(random_state=RS, eval_metric='mlogloss')
##### since xgboost is robust to outliers, transformation is not required
xgb_pipe = Pipeline([('scaler',Scaler),('pca',Pca),('smt', Smot),('xgb', xgb_model)])
params = {'n_estimators': stats.randint(150, 1000),
'learning_rate': stats.uniform(0.01, 0.59),
'subsample': stats.uniform(0.3, 0.6),
'max_depth': [3, 4, 5, 6, 7, 8, 9],
'colsample_bytree': stats.uniform(0.5, 0.4),
'min_child_weight': [1, 2, 3, 4]
}
num_folds = 5
seed = 7
stratified_kfold = StratifiedKFold(n_splits = num_folds, random_state = RS, shuffle=True)
new_params = {'xgb__'+ key: params[key] for key in params}
rand_imba = RandomizedSearchCV(xgb_pipe, param_distributions = new_params, cv = stratified_kfold, n_iter = 5, scoring = 'f1', return_train_score=True)
rand_imba.fit(X_train,y_train)
# xgb_pipe.fit(X_train,y_train)
give_scores('xgb-pca', rand_imba, X_train, X_test, y_train, y_test)
CV score: 0.0954 Train Accuracy scores: 1.0 Test Accuracy scores: 0.9286 Classification reports of train and test set, respectively xgb-pca
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 1.0 | 1.0 | 1.0 | 1097.0 |
| 1 | 1.0 | 1.0 | 1.0 | 78.0 |
| accuracy | 1.0 | 1.0 | 1.0 | 1.0 |
| macro avg | 1.0 | 1.0 | 1.0 | 1175.0 |
| weighted avg | 1.0 | 1.0 | 1.0 | 1175.0 |
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.940 | 0.986 | 0.963 | 366.000 |
| 1 | 0.375 | 0.115 | 0.176 | 26.000 |
| accuracy | 0.929 | 0.929 | 0.929 | 0.929 |
| macro avg | 0.658 | 0.551 | 0.570 | 392.000 |
| weighted avg | 0.903 | 0.929 | 0.911 | 392.000 |
Wall time: 3min 23s
XGB classifier with PCA overfits
%%time
xgb = XGBClassifier(random_state=RS, eval_metric='mlogloss')
xgb_pipe2 = Pipeline([('smt', Smot),('xgb', xgb)])
params = {'n_estimators': stats.randint(150, 1000),
'learning_rate': stats.uniform(0.01, 0.59),
'subsample': stats.uniform(0.3, 0.6),
'max_depth': [3, 4, 5, 6, 7, 8, 9],
'colsample_bytree': stats.uniform(0.5, 0.4),
'min_child_weight': [1, 2, 3, 4]
}
num_folds = 5
seed = 7
stratified_kfold = StratifiedKFold(n_splits = num_folds, random_state = RS, shuffle=True)
new_params = {'xgb__'+ key: params[key] for key in params}
rand_imba = RandomizedSearchCV(xgb_pipe2, param_distributions = new_params, cv = stratified_kfold, n_iter = 5, scoring = 'f1', return_train_score=True)
rand_imba.fit(X_train,y_train)
rand_imba.fit(X_train,y_train)
give_scores('xgb',rand_imba,X_train, X_test, y_train, y_test)
CV score: 0.2023 Train Accuracy scores: 1.0 Test Accuracy scores: 0.9235 Classification reports of train and test set, respectively xgb
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 1.0 | 1.0 | 1.0 | 1097.0 |
| 1 | 1.0 | 1.0 | 1.0 | 78.0 |
| accuracy | 1.0 | 1.0 | 1.0 | 1.0 |
| macro avg | 1.0 | 1.0 | 1.0 | 1175.0 |
| weighted avg | 1.0 | 1.0 | 1.0 | 1175.0 |
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.944 | 0.975 | 0.960 | 366.000 |
| 1 | 0.357 | 0.192 | 0.250 | 26.000 |
| accuracy | 0.923 | 0.923 | 0.923 | 0.923 |
| macro avg | 0.651 | 0.584 | 0.605 | 392.000 |
| weighted avg | 0.905 | 0.923 | 0.913 | 392.000 |
Wall time: 4min 36s
XGB classifier without PCA overfits
%%time
LR_cv = LogisticRegressionCV( scoring = 'f1', random_state=RS, class_weight='balanced',
verbose=0, n_jobs=-1, max_iter=10000)
LR_model1 = Pipeline([('trans',Trans),('scaler',Scaler),('pca',Pca),('LR', LR_cv)])
LR_model1.fit(X_train,y_train)
give_scores('LR-pca',LR_model1,X_train, X_test, y_train, y_test)
CV score: 0.1844 Train Accuracy scores: 0.8145 Test Accuracy scores: 0.7781 Classification reports of train and test set, respectively LR-pca
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.986 | 0.813 | 0.891 | 1097.000 |
| 1 | 0.241 | 0.833 | 0.374 | 78.000 |
| accuracy | 0.814 | 0.814 | 0.814 | 0.814 |
| macro avg | 0.613 | 0.823 | 0.632 | 1175.000 |
| weighted avg | 0.936 | 0.814 | 0.857 | 1175.000 |
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.976 | 0.781 | 0.868 | 366.000 |
| 1 | 0.192 | 0.731 | 0.304 | 26.000 |
| accuracy | 0.778 | 0.778 | 0.778 | 0.778 |
| macro avg | 0.584 | 0.756 | 0.586 | 392.000 |
| weighted avg | 0.924 | 0.778 | 0.831 | 392.000 |
Wall time: 8.49 s
%%time
LR_cv = LogisticRegressionCV( scoring = 'f1', random_state=RS, class_weight='balanced',
verbose=0, n_jobs=-1, max_iter=10000)
LR_model2 = Pipeline([('trans',Trans),('LR', LR_cv)])
LR_model2.fit(X_train,y_train)
give_scores('LR',LR_model2,X_train, X_test, y_train, y_test)
CV score: 0.2021 Train Accuracy scores: 0.8579 Test Accuracy scores: 0.7755 Classification reports of train and test set, respectively LR
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.999 | 0.849 | 0.918 | 1097.000 |
| 1 | 0.317 | 0.987 | 0.480 | 78.000 |
| accuracy | 0.858 | 0.858 | 0.858 | 0.858 |
| macro avg | 0.658 | 0.918 | 0.699 | 1175.000 |
| weighted avg | 0.954 | 0.858 | 0.889 | 1175.000 |
| precision | recall | f1-score | support | |
|---|---|---|---|---|
| 0 | 0.963 | 0.790 | 0.868 | 366.000 |
| 1 | 0.163 | 0.577 | 0.254 | 26.000 |
| accuracy | 0.776 | 0.776 | 0.776 | 0.776 |
| macro avg | 0.563 | 0.683 | 0.561 | 392.000 |
| weighted avg | 0.910 | 0.776 | 0.827 | 392.000 |
Wall time: 16 s
Logistic regression without pca and scaling overfits
def plot_scores(df=None):
global scores
if df==None: df = scores
fig, ax = plt.subplots(figsize=(10,15))
colors = ['orange','green', 'blue', 'red', 'yellow']
rectangles=[]
N =len(df.columns)
ind = np.arange(N)
xlabels = df.columns
width = 0.2 # the width of the bars
ax.set_yticks(ind + width)
ax.set_yticklabels(xlabels,fontsize=10)
ax.set_ylabel("Models", fontsize=12)
ax.set_xlabel("scores", fontsize=12)
ax.set_title('f1 scores of minority class with different Models')
def labelvalues(rects):
for rect in rects:
height = rect.get_width()*100
ax.text(height/100, rect.get_y() + rect.get_height()/2., '{0:1.2f}'.format(height),va='center', ha='left')
for i in range(df.shape[0]):
rectangles.append(ax.barh(ind+width*i, df.iloc[i,:], width, color=colors[i]))
labelvalues(rectangles[i])
rect_leg = [item[0] for item in rectangles]
rect_leg.reverse()
scor = df.index.tolist()
scor.reverse()
ax.legend((rect_leg),(scor),bbox_to_anchor=(1.13, 1.01))
plt.show()
global cv_scores
return
plot_scores()
Logistic regression with PCA and SVM Classifier Without PCA(both have equal scores) have the highest f1-scores for class 1(minority class) in test data when compared to other models. So we can choose any one of them as our final model.
When we consider the Cross validation f1-score, we can surely say that Logistic regression with PCA perform well in unseen data.Logistic regression with PCA also has the minimum standard deviation in CV f1-score.Therefore i am choosing Logistic regression with PCA as my final model.
import pickle
# save the model to disk
filename = 'finalized_model.sav'
pickle.dump(LR_model1, open(filename, 'wb'))
# load the model from disk
loaded_model = pickle.load(open(filename, 'rb'))
Import the future data file. Use the same to perform the prediction using the best chosen model from above. Display the prediction results
Test_signal = (pd.read_excel('Future_predictions.xlsx')).to_csv('Future_predictions123.csv', index = None, header=True)
Test_signal = pd.read_csv('Future_predictions123.csv')
Production_data = Test_signal[signal_X.columns]
Production_data = Production_data.replace(np.nan, 0)
loaded_model.predict(Production_data)
array([0, 0, 1, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 0, 0], dtype=int64)
The dataset contains lot of missing values in it. Some of the features had about 91% of missing values in them. Next time during data collection please try to collect the data as much as possible without any missing values. Also the dataset is highly imbalanced(imbalance ratio 14:1), try to collect the without any skewness. The model that i have built tend to perform more well on the majority class records, this is because of the data imbalance. XGB classifier overfits the training data. SVC consumes more time as it is compute intensive. I have chosen Logistic regression because it handles the data imbalance comparitively well and also it is less compute intense.
I have implemented pipeline, hyperparameter tuning, cross validation, Dimensionality reduction techniques in this project.